我似乎有一个 arrayformula 正在为我生成重复项。
我将向您展示 D 列中的代码,然后解释问题:
=arrayformula(
if (C1225:C$1684="A",A1225:A$1684,
if (C1225:C$1684="B",B1225:B$1684,
if (C1225:C$1684="AB",{A1225:A$1684, B1225:B$1684},""))))
如果是 A 或 B,它应该将 A 或 B 的内容放在 D 中。所以我希望单元格 E 为空,除非 C 中的内容为“AB” - 只有这样我才想要用来自的数据填充两个单元格A 和 B。
目前它正在推出 A 两次。
For No One|No Reply|ab|For No One|No Reply
Across The Universe (Let It Be Naked...)|The End|a|Across The Universe (Let It Be Naked...)|Across The Universe (Let It Be Naked...)
All You Need Is Love|Twist And Shout|b|Twist And Shout|Twist And Shout
所以第一行没问题,但后两行会产生不需要的重复项。
您遇到的问题是因为 ARRAYFORMULA 将所有响应设为 2 个项目的数组。由于最终结果具有此大小,因此所有结果必须具有相同大小。
试试这个,更改范围以满足您的需要以及 10:
=arrayformula(
if (C2:C$11="A",{A2:A$11, transpose(split(rept(", ", 10), ",", TRUE))},
if (C2:C$11="B",{B2:B$11, transpose(split(rept(", ", 10), ",", TRUE))},
if (C2:C$11="AB",{A2:A$11, B2:B$11},))))
rept(", ", 10) 部分创建一个文本字符串,它是 ", " 重复 10 次,或 ", , , , , , , , , , "
Split() 然后将其拆分为每个逗号的条目,删除逗号,因此在这种情况下是一系列空格。TRUE 告诉 Split 对每次出现的逗号都执行此操作,因此它变为:
split(", , , , , , , , , , ", ",", TRUE)
然后我使用 transpose () 将其更改为行而不是列。这需要与我使用括号创建的数组中的其他项目的行数相同,所以我基本上得到:{A2:A$10, [Make_Blank_Entries_For_Each_Row]}
所以如果我的数学计算正确,你应该使用:
=arrayformula(
if (C1225:C$1684="A",{A1225:A$1684, transpose(split(rept(", ", 460), ",", TRUE))},
if (C1225:C$11="B",{B1225:B$1684, transpose(split(rept(", ", 460), ",", TRUE))},
if (C1225:C$11="AB",{A1225:A$1684, B2:B$11},))))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句