在Excel 2010中,在A列中查找某项内容,然后显示该行B列的值。

6

我的问题基本上是:我在Excel的一个单元格中有一个字符串,然后需要查看该字符串是否存在于另一行(不是一个单元格,而是整个行),如果存在,则打印同一行但不同列中另一个单元格的内容。

我将给出一个基本示例:

Title      Answer
Police       15
Ambulance    20
Fire         89

现在我需要扫描标题列,找到“Police”,然后将单元格填充为答案下的值(在这种情况下为15)。
我不能只说IF(A2="Police";B2;""),因为我需要扫描整个标题列。
我尝试使用IF(COUNTIF(A$2:A$100;"Police");,它会扫描A2到A100中包含字符串“Police”的内容,并且知道如何打印常量(只需在;之后放置一些内容),但无法弄清楚如何使该“常量”成为根据找到的行而变化的变量。因此,如果COUNTIF在单元格A44中找到Police,则我的公式的答案将是B44,与如果它在A62中找到Police,则我的公式应显示B62 希望这样说得通,希望有人能帮助我 :)
请注意,我正在使用Excel 2010,需要一个普通的公式,因为我无法为此文档使用脚本。
编辑:
这是我目前所拥有的,注意,我使用的电子表格比我在问题中提到的“简单”示例要复杂得多...
=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")

在每一个答案中,都会显示"RuhrP",这是因为它在F9中被找到了,而我希望它的答案是在RuhrPumpen!I$5:I$100中被找到的,其中单元格索引与A9所在的列相同。抱歉内容比较复杂,我无法想到更好的表述方式。


1
标题是唯一的吗?那么VLOOKUP似乎是正确的解决方案:http://www.techonthenet.com/excel/formulas/vlookup.php - Jüri Ruut
是的,这些值是唯一的,但不幸的是VLOOKUP不起作用:( 我已经找到了部分解决方案,但它还没有完成,它涉及到结合IF、ISNUMBER、FIND和LOOKUP。当我能够将其正常运行时,我会更新我的问题。 - Kevin Anthony Oppegaard Rose
1
请分享示例电子表格以及为什么“VLOOKUP”无法工作的原因? - shahkalpesh
"cell index" 的意思是特定项的代码吗? - Jüri Ruut
“单元格索引”指的是,如果我的结果在A5中找到,则我需要的答案就在B5中。很遗憾,由于表格内容高度机密,我无法发布实际电子表格,也无法发布其部分内容,因为我没有时间制作它 :( - Kevin Anthony Oppegaard Rose
4个回答

14

我注意到您建议使用以下公式:

=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")

......但在这里不适合使用 LOOKUP 函数,因为我假定您想要一个精确匹配(LOOKUP 不能保证这一点,而且查找范围内的数据必须排序),所以 VLOOKUP 或者 INDEX/MATCH 更好……您也可以使用 IFERROR 避免使用 IF 函数,如下:

=IFERROR(VLOOKUP(A9;Ruhrpumpen!A$5:Z$100;9;0);"")

注意:VLOOKUP 总是在“表格数组”的第一列中查找查找值(A9),并从“表格数组”的第 n 列返回一个值,其中 n 由 col_index_num 定义,在此例中为 9。

INDEX/MATCH 有时更灵活,因为您可以明确定义查找列和返回列(并且返回列可以在查找列左侧,这在 VLOOKUP 中不可能出现),因此代码如下:

=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH(A9;Ruhrpumpen!A$5:A$100;0));"")

INDEX/MATCH 还允许您更轻松地从不同列返回多个值,例如在 A9 和查找范围 Ruhrpumpen!$A$5:$A$100 前使用 $ 符号:

=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH($A9;Ruhrpumpen!$A$5:$A$100;0));"")

此版本可拖动以获取来自 I、J、K 等列的连续值......


Barry Houdini,我尝试了您对我遇到的一个类似问题的答案。它返回了正确的值。但是,它只返回第一个匹配的值。如果我想要它返回一列中所有匹配的数据,该怎么办?提前感谢您的帮助。 - user2725690

1
我设计了如下的数据结构:
主表格: A列:泵代码(数字)
B列:公式,显示在“Ruhrpumpen”表格中对应的行。
=ROW(Pump_codes)+MATCH(A2;Ruhrpumpen!$I$5:$I$100;0)

公式中使用的是";"而不是",", 也应该使用德国表示法。如果不是,请进行更改。

列C:公式显示在列B找到的行中“Ruhrpumpen”列A中的数据。

=INDIRECT("Ruhrpumpen!A"&$B2)

列 D:公式显示在“Ruhrpumpen”列 B 中的数据,该行由列 B 中的公式找到:

=INDIRECT("Ruhrpumpen!B"&$B2)

表格“Ruhrpumpen”:

列A:关于某个泵的一些数据

列B:更多的数据

列I:泵代码。列表的开头包括在主表格列B中使用的定义名称“Pump_codes”的公式。

电子表格示例:http://www.bumpclub.ee/~jyri_r/Excel/Data_from_other_sheet_by_code_row.xls


可以使用行号将B列中的公式与其他公式相结合,但我更喜欢明显可见的参考以快速查找数据。 - Jüri Ruut
跟我现在的差不多。我今晚会带回家,制作一个真实的电子表格示例。由于某种原因,在我的公式中使用逗号无法生效,只有分号可以。 - Kevin Anthony Oppegaard Rose
1
@KevinAnthonyOppegaardRose 在公式中使用逗号或分号取决于计算机的语言设置。如果您的Excel公式只接受分号,那么这意味着您的语言设置使用逗号作为小数点分隔符。 - Amir Syafrudin
@AmirSyafrudin 听起来没错,我无法控制我的电脑设置,即使我是英国人并且只使用英语(某些自动更正设置非常烦人,也无法更改,哈哈)。 - Kevin Anthony Oppegaard Rose

1
假设源数据范围为A1:B100。
查询单元格为D1(在此输入Police或Fire)。
结果单元格为E1。
E1中的公式= VLOOKUP(D1, A1:B100, 2, FALSE)

1
谢谢您的回答,它让我朝着正确的方向前进了,但我的问题还没有解决。由于我尝试做的事情非常复杂(我的问题只是一个非常基本的例子,而且完全不完整),简单的VLOOKUP不起作用(我认为)。 我已经更新了我的问题,包括我的当前公式和目前的答案。 - Kevin Anthony Oppegaard Rose

0

大家好,非常有趣的是,我们中的许多人在使用Vlookup / Index与Match或Hlookup时都会遇到查找值复制的问题...如果单元格中有重复值,我们都知道,Vlookup将选择与循环数组中匹配的第一个项目...所以这里是你们所有人的解决方案...

例如:

在列A中,我们有一个名为“公司”的字段....

Column A                             Column B            Column C

Company_Name                         Value        
Monster                              25000                              
Naukri                               30000  
WNS                                  80000  
American Express                     40000  
Bank of America                      50000  
Alcatel Lucent                       35000  
Google                               75000  
Microsoft                            60000  
Monster                              35000  
Bank of America                      15000 

现在,如果您查找上述数据集,您会发现重复项在第10行和第11行的公司名称中。因此,如果您使用vlookup,数据将选择先出现的数据...但是,如果您使用以下公式,您可以使您的查找值唯一,并且可以轻松地选择任何数据,而不会有任何争议或面临任何问题。

将公式放入C2.........A2&"_"&COUNTIF(A2:$A$2,A2)..........结果将为Monster_1用于第一行项目,对于第10行和第11行.....Monster_2,Bank of America_2分别....现在您拥有唯一的值,因此现在您可以轻松地选择任何数据了。

干杯!!! 安尼尔·达万


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接