如何匹配单元格中的文本字符串

时间:2015-08-19 11:52:52

标签: excel

我有这个公式

=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。

我也尝试过匹配配方,这应该让我使用"钓鱼*"但这似乎也不起作用。)

提前致谢

1 个答案:

答案 0 :(得分:2)

代替潜在的资源密集型IFERROR设置,最好引用一个辅助单元格来计算预期回报的数量。如果感兴趣,请参阅此处获取解释:

https://superuser.com/questions/812727/look-up-a-value-in-a-list-and-return-all-multiple-corresponding-values/812848#812848

例如,如果您为此目的使用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))))

并向下复制,直到你开始得到空白。

另请注意,ROWSROW生成SMALL k 参数更为严格:

http://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/

此致