我有这个公式
=IFERROR(INDEX('[Fishing Contact list July 2015.xlsm]Places'!$A$2:$A$65, SMALL(INDEX(ROW($1:$64)+('[Fishing Contact list July 2015.xlsm]Places'!$Q$2:$Q$65="A"&'[Fishing Contact list July 2015.xlsm]Places'!$B$2:$B$65>="Fishing")*1E+99, , ), ROW(1:1))),"No Active Fishing Places")
旨在查找B列中的另一个工作簿中的单词"钓鱼"并且只有在Q栏中写有A,并且在B栏中文字与钓鱼一词匹配时,才返回写在A栏中的钓鱼场所的名称。
我遇到的问题是,在B栏中不仅有钓鱼文本。通常,"钓鱼/湖泊"或"钓鱼/盐水"例如。我需要一种方法来使用“#34;钓鱼"找到一个匹配(以及在Q列中使用A),而不必单独写出单词。
目前它刚刚返回"没有活跃钓鱼场所"。如果我颠倒了> ="钓鱼"到< ="钓鱼"返回的值是0。
我也尝试过匹配配方,这应该让我使用"钓鱼*"但这似乎也不起作用。)
提前致谢
答案 0 :(得分:2)
代替潜在的资源密集型IFERROR
设置,最好引用一个辅助单元格来计算预期回报的数量。如果感兴趣,请参阅此处获取解释:
例如,如果您为此目的使用E1,那么我们将在该单元格中输入此公式:
=COUNTIFS('[Fishing Contact list July 2015.xlsm]Places'!$B$2:$B$65,"* Fishing *",'[Fishing Contact list July 2015.xlsm]Places'!$Q$2:$Q$65,"A")
编辑:我必须在“* Fishing *”之后的第一个和第二个星号之后放置空格,因为编辑器不会允许它。将公式粘贴到Excel中时,请删除这两个空格。
您的主阵列公式是:
=IF(ROWS($1:1)>$E$1,"No Active Fishing Places",INDEX('[Fishing Contact list July 2015.xlsm]Places'!$A:$A,SMALL(IF('[Fishing Contact list July 2015.xlsm]Places'!$Q$2:$Q$65="A",IF(ISNUMBER(SEARCH("Fishing",'[Fishing Contact list July 2015.xlsm]Places'!$B$2:$B$65)),ROW('[Fishing Contact list July 2015.xlsm]Places'!$B$2:$B$65))),ROWS($1:1))))
并向下复制,直到你开始得到空白。
另请注意,ROWS
比ROW
生成SMALL
的 k 参数更为严格:
http://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/
此致