带有嵌套 if 语句的 Google Sheets ARRAYFORMULA

Fer*_*ing 2 google-sheets array-formulas

我正在研究我认为相当直接的数组公式,我只需要一个单元格条目,而不必将其复制到 100 多行。

我正在制作一个电子表格,用于 Pathfinder 中的野兽形状、元素身体和植物形状法术。

我的桌子看起来像

_________A___________B____C

1___拼写名称_____类型_____尺寸

其中 A2 将包含数组公式。B2:B 将包含动物、植物、元素、魔兽。C2:C 将包含大小范围。

我试过了

ARRAYFORMULA(if(B2:B<>"",CONCATENATE(if(AND(B2:B="Animal", OR(C2:C="Small", C2:C="Medium")),"野兽形状1 ","失败 BS1"),if(AND(B2:B="Animal", OR(C2:C="Tiny", C2:C="Large")),"野兽形态 2","失败 BS2" )),“失败其他”))

=ARRAYFORMULA(if(B2:B<>"",if(and(B2:B="Animal",C2:C="Small"),"Beast Shape 1", "not"), "if fail") )

但是它们会产生错误的输出。我也尝试了其他几个,但有各种问题,通常没有传播到所有细胞,或者只是有错误的信息。即使我尝试只使用一个语句。

最初我的计划是有一个包含多个 if 语句的 concat 语句,这些语句会产生法术名称或什么都不产生。它看起来像

arrayformula(if(b2:b<>"",concatenate(if(and(b2:b="Animal",OR(c2="small",c2="medium")), "Beast shape 1", "" ), if(and(b2:b="Animal",OR(c2="tiny",c2="large")), "Beast shape 2", ""))

但是输出是错误的,我无法弄清楚原因。我在某些地方看到过一些评论,这些评论表明 AND 和 OR 无效,因为它们具有单个输出语句,并且必须用 & 替换连接,但即使删除了它们也不起作用。

Max*_*rov 5

将 AND 替换为*和 OR替换为+

if(and(b2:b="Animal",OR(c2="small",c2="medium"))

变成:

if( (b2:b="Animal") * ((c2:c="small") + (c2:c="medium")) )

必须使用它。