我有一个电子表格,其中列出了食品成分偏好设置以及所适用的人,并列出了餐食及其所含成分-我正在寻找一种方法来对照偏好设置,并返回可以选择其中任何一种成分的人的列表。
The gray area is the desired result
我最初的想法是(对于单元格E5):
{=INDEX($A:$A,LARGE((ISNUMBER(FIND(E$2,$B$2:$B$7))+ISNUMBER(FIND(E$3,$B$2:$B$7))>0)*ROW($B$2:$B$7),ROW(A12)-ROW($A$11)))}
大多数情况下都有效,但是当我计划每餐添加更多食材时,它很快就会变得很笨拙...
关于如何简化此流程以便扩展它的任何想法?
答案 0 :(得分:0)
一种方法是建立一个二维数组,其中行是您的人员,列是每道菜的成分。如果某人喜欢其中一种成分,则可以通过与公式相同的方式从ISNUMBER(SEARCH)中获得数组中的TRUE值。如果要查找某人是否喜欢特定菜肴的任何配料,可以使用标准方法使用MMULT获取数组的行总数,然后以相同的方式使用LARGE和INDEX你做到了。
=IFERROR(INDEX($A:$A,LARGE(IF(MMULT(ISNUMBER(SEARCH(TRANSPOSE(E$2:E$4),$B$2:$B$10))*(TRANSPOSE(E$2:E$4)<>""),ROW(E$2:E$4))>0,ROW($A$2:$A$10)),ROWS(E$5:E5))),"")
必须使用 Ctrl Shift Enter
作为数组公式输入如果您希望它们按其原始顺序列出,也可以使用SMALL。