我有一个电子表格,我希望在其中返回MyTable字段“ Result”中所有单元格的文本,其中MyTable字段“ Query”中的相应文本与$ C $ 1中的字符串匹配作为列表。我想使用公式来做到这一点。我知道我的公式将需要具有以下形式:
=INDEX(MyTable[Result],SMALL(IF(MyTable[Query]=C1,ROW(MyTable[Result]),""),___))
问题是我不确定___应该包含什么。我希望我的公式从所有相关的单元格返回字符串,而不仅仅是返回固定数目的单元格,因为我现在不知道许多单元格都符合条件。据我了解,如果作为最后一个参数提供的数字超过了SMALL
函数返回的非空字符串的数量,则IF
会引发错误。有什么办法解决吗?
答案 0 :(得分:1)
您的k
参数可以是一个数组。在您的情况下,可以使用COUNTIF
来计算上限。
可以用多种方法构造数组。
一种方法(效率最低不是最有效的方法)类似于:
=row(indirect("1:" & countif(MyTable[Query],C1)))
您还可以使用INDEX
函数来构造数组,并且,如果速度是一个问题,由于它是非易失性函数,这样做会更好。