【问题标题】:Excel formula to find value from field in list and return associated valueExcel公式从列表中的字段中查找值并返回相关值
【发布时间】:2019-05-01 11:16:17
【问题描述】:

我正在尝试创建一个 Excel 公式,用于在不同搜索词列表的单元格中搜索值。找到后,它将返回该行的值。

搜索词值:

Grocery     31    
Pub         42    
Restaurant  45    
Taxi        58    
Bus         58    

我猜伪代码会是这样的:

=IF((A1 IS IN C1:C10);D1:D10;"blank")

我创建了这个公式,但很难维护。我想使用列表而不是修改公式。

=IF(OR(    (ISNUMBER(SEARCH("GROCERY", E3))), "31", 
(IF(OR(    (ISNUMBER(SEARCH("PUB", E3))), "42", 
(IF(OR(    (ISNUMBER(SEARCH("Restaurant", E3))), "45", 
(IF(ISNUMBER(SEARCH("Taxi", E3)), "58", "")))))))`

【问题讨论】:

  • 考虑使用VLOOKUP()
  • Vlookup 看起来不能很好地处理文本字段。搜索文本可以是“OUTLAND AS AVD OSLO 2, OSLO, NO -628,0”,在列表中我有“outland”。旧公式使用 SEARCH 在文本中查找。有没有办法结合这些功能?

标签: excel-formula


【解决方案1】:

假设我们要搜索的文本在 A1 中,而我们的小查找表在 D1E5 中:

B1中输入数组公式:

=IFERROR(VLOOKUP(TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH($D$1:$D$5,A1)),$D$1:$D$5,"")),$D$1:$E$5,2,TRUE),"")

如你所见,公式扫描了小桌子;找到 Pub 并返回相关的数值。

数组公式必须使用 Ctrl + Shift + Enter 而不仅仅是 Enter 键。如果正确执行此操作,公式将在公式栏中显示并带有花括号。

【讨论】:

    【解决方案2】:

    INDEX/AGGREGATE 会找到并返回正确的值:

    =INDEX(F:F,AGGREGATE(15,7,ROW($E$1:$E$5)/(ISNUMBER(SEARCH($E$1:$E$5,A1))),1))
    

    【讨论】:

    • 不错! ................... ..我会保留这个作为我的工具箱。
    • 您的将返回多个,而我的仅返回列表中的第一个匹配项,看看 OP 想要什么会很有趣。两者都有自己的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多