我有 3 列数据(车辆名称、车辆登记、车辆号码)具体来说是 O、P、Q 列
当我从单元格 A 中的列表中选择车辆名称时,我希望 Excel 自动将车辆登记和车辆编号的正确数据输入单元格 B 和 C。列表从 O 列中提取其数据。
我可以使用数据验证来构建列表,但是我如何告诉 excel,例如“当单击车辆 Daisy 时,将 Daisy 的相应注册和号码输入到相邻的单元格中”
答案1
根据您链接的文件,将其放在单元格 C4 中,以便从 O3 到 Q75 的列表中查找 E4 中的车辆名称并返回 ID,该 ID 位于第三列
=VLOOKUP($E4,$O$3:$Q$75,3,FALSE)
要返回注册,请使用第二列。
=VLOOKUP($E4,$O$3:$Q$75,2,FALSE)
如果将 Vlookup 嵌套在 IfError 或其他函数中,则无需以 = 符号开头。 = 符号仅在公式开头才需要。
=iferror(VLOOKUP($E4,$O$3:$Q$75,3,FALSE),"Not found")
答案2
选择车辆名称后,填写信息的最简单方法可能是在 B&C 中填写VLOOKUP
。
句法
=VLOOKUP (value, table, col_index, [range_lookup])
简单的=VLOOKUP(A1,O:Q,2,FALSE)
forB1
和=VLOOKUP(A1,O:Q,3,FALSE)
forC1
应该可以工作。列表的位置在
哪里。A1
如果您有多个列表,则只需填写它们即可。
问题在于,如果没有选择任何内容,单元格将显示出来#N/A
,但这可以通过类似如下的方式解决IFERROR
:
=IFERROR(VLOOKUP(A1,O:Q,2,FALSE),"")
对该功能的进一步解释。
Syntax
=VLOOKUP (value, table, col_index, [range_lookup])
Arguments
value - The value to look for in the first column of a table.
table - The table from which to retrieve a value.
col_index - The column in the table from which to retrieve a value.
range_lookup - [optional] TRUE = approximate match (default). FALSE = exact match.
所以我们说“取 A1 中的值,然后在 O 到 Q 列中查找该值。找到该值后,返回第二列(或 C 列中的第三列)中的值”祝你好运!
答案3
公式:
- 在单元格 B=index(O2:Q3,match(a2,O2:03,0)2)
- 在单元格 C=index(O2:Q3,match(a2,O2:03,0)3)
- 您的数据位于 O (NAMES)、P (REG) Q (NUMBER) 栏
A2 是验证列表单元格,匹配将采用它并在 Index 公式中找到它作为行的位置,并找到 Reg 的第 2 列和 Number 的第 3 列。
这比 VLOOKUP 更快