【问题标题】:Excel Find the largest partial value in an indexed listExcel 在索引列表中查找最大的部分值
【发布时间】:2014-10-01 19:47:12
【问题描述】:

我正在使用 excel 并尝试查找一个单元格的一部分是否与列表中的任何内容匹配。我正在尝试提取单元格的那部分作为我的结果。

我正在使用的公式是:

{=INDEX($A$1:$A$10,MATCH(1,COUNTIF(B1,"* "&$A$1:$A$10&"*"),0))}

注意:必须将星号隔开以避免斜体

A1 到 A10 是我引用的列表,B 列中的任何内容都是我在列表中搜索的部分

问题是公式返回列表中最常见的值,而不是列表中最具体的部分。

例子:

        A(list)          B           (formula result)  (desired Result)

1       ABC          sdfjABCsdhfs          ABC               ABC
2       ABC123       asdfasdfa             #N/A              #N/A
3       RBZ456       agfhABC1234shj        ABC               ABC1234
4       ABC1234      wuefhiuvbsiue         #N/A              #N/A
5       DEF123       dfsghABC123sdf        ABC               ABC123

在 B 列中找到的最大结果是我希望找到的结果。不是最低公分母。

任何建议都会很棒!

提前致谢。

编辑:加了括号,是数组公式

【问题讨论】:

  • 您的公式不返回“最常见”值,也没有返回“最小公分母”。相反,它会返回与它找到的条件匹配的 first 条目。在这种情况下,“最大”是什么意思?你怎么能有一个字母数字字符串的“最大值”?你的意思是“最长”吗?或者也许是列中满足您测试的最后一个示例?
  • 是的,我的意思是与列表中的内容匹配的最长可用文本字符串。 B5 包含 A 列(列表)中的 ABC123,但由于 B3 包含也在列表中的 ABC1234,因此返回 ABC1234 是正确的。
  • 按长度排序列表似乎有效。我会做一些仔细检查以确保。谢谢你的提示。反正有没有通过代码来做到这一点而不进行排序?我不知道这种类型的公式只是在列表中查找并在第一个匹配项处停止,而不是搜索最具体的匹配项。

标签: excel indexing max match countif


【解决方案1】:

数组公式**

=INDEX($A$1:$A$10,MATCH(MAX(IF(COUNTIF(B1," *"&$A$1:$A$10&" *"),LEN($A$1:$A$10 ))),IF(COUNTIF(B1,"*"&$A$1:$A$10&"*"),LEN($A$1:$A$10)),0))

(我还在四个星号之前添加了一个空格。)

问候

**数组公式的输入方式与“标准”公式不同。不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(尽管不要尝试自己手动插入)。

【讨论】:

  • 谢谢,这正是我所需要的。它使您无需按 ledngth 的降序对列表进行排序。
  • 谢谢你们!
猜你喜欢
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 2021-09-26
  • 2018-10-24
相关资源
最近更新 更多