我知道可以通过以下方式在 Google 表格中模拟 for 循环:
=ARRAYFORMULA(IF(LEN({range_0 to iterate over}),{function_0 for each element in range_0}))
我无法扩展上述方法以实现多嵌套 for 循环的效果。这可能吗?理想情况下,这看起来像:
=ARRAYFORMULA(IF(LEN({range_0 to iterate over}),IF(LEN({range_0.1 to iterate over for each parent element in range_0}),{function_0.1 for each element in range_0.1},{OPTIONAL: function_0 for each element in range_0})))
示例应用程序: 为一列中的每一行迭代一行中的每个单元格(见下文;我确信有办法通过其他方法来实现此效果,但我已将请求和指定的方法用于单个动态公式对于跟上未知且不断变化的行数、列数和所涉及的函数是必要的):
原始数据:
事物 | 类型 | 特征 | 成本 |
---|---|---|---|
苹果 | 水果 | 种子 | 1美元 |
车 | 汽车 | 轮子 | 6,000 美元 |
笔记本电脑 | 计算机 | 键盘 | 500 美元 |
葡萄 | 水果 | 美味 | 0.50 美元 |
理论公式:
=ARRAYFORMULA(IF(LEN(`Thing`),IF(LEN(COLUMNS({current row of `Thing`})),{current cell in current row of `Thing`} & " of column " & COLUMN({*current cell*}) & " and row " & ROW(`Thing`),""),""))
上述理论公式的输出:
事物 | 类型 | 特征 | 成本 |
---|---|---|---|
第 1 列第 3 行的苹果 | 第 2 列第 3 行的果实 | 第 3 列和第 3 行的种子 | 第 4 列和第 3 行的 $1 |
第 1 列第 4 行的汽车 | 第2列第4行汽车 | 第 3 列和第 4 行的轮子 | 第 4 列和第 4 行的 $6,000 |
第 1 列第 5 行的笔记本电脑 | 第 2 列第 5 行的计算机 | 第 3 列第 5 行的键盘 | 第 4 列和第 5 行 500 美元 |
第 1 列第 6 行的葡萄 | 第 2 列第 6 行的果实 | 第 3 列和第 6 行的美味 | 第 4 列和第 6 行 0.50 美元 |
谢谢您的帮助!