问题标签 [excel-lambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - Excel Lambda 函数:迭代 For 循环
所以,我正在处理另一个问题,需要检查 12 x 6 excel 范围是否有错误。如果有错误,我希望它在函数内构建一个新的 12 x 6 范围,然后检查是否有错误。我刚开始接触 Excel 中的 Lambda 函数(但我有基础知识)。我也有不使用 VBA 的限制(我知道这会更简单、更干净)。
所以我在名称管理器中创建了一个函数 LoopTest,然后在“引用”中:
然后=LoopTest(0,0)
这似乎工作正常(尽管 excel 并不允许对函数进行中间测试)。所以现在我假设我可以使用Index(array,X,Y)遍历一个范围并检查单元格是否有错误。
唯一的问题是我一次只能做一个数组/表/范围。我需要弄清楚如何第一次创建一个测试数组,然后每次都将其传回,直到测试失败或完全成功(此时它返回成功范围)。我倾向于 Let() 函数来定义更多变量并将它们隐藏在一些 IF 语句后面(我没有使用 IFS,但看到其他人使用它成功。)我没有检查以下公式,但一般流程应该是正确的。
目的是允许一系列具有一系列资格的名称,例如
并创建一个类似于数独的独特范围(水平和垂直独特)。
有 6 个位置和 12 个名称,它失败的次数多于成功(猜测每个有效解决方案 100 次迭代),但我希望它继续迭代,直到 Lambda 找到一个有效的解决方案。简单的解决方案是根据来自上方和左侧的内容随机获取表格的名称,找到有效解决方案的概率约为 50/50。
excel - 在非常简单的 Excel Lambda() 函数上得到不正确的结果
也许我遗漏了一些东西,但在一个简单的测试中,我在两个 excel Lambda 函数上得到了不正确的结果。
一个名为xytest():
另一个是addy():
它应该只是递归的,直到y大于x。但是当我输入时,=xytest(8,4)我得到以下结果:
我不知道这是怎么发生的,因为没有增量测试,但我想知道IF(x > y)x 是否实际上是大于或等于?它显然应该迭代直到y=9。我要么对 Lambda() 的工作原理感到非常困惑,要么我的公式中有错误。不幸的是,我找不到太多关于 Lambda() 的技术文档来尝试弄清楚发生了什么。