【发布时间】:2015-05-14 09:34:26
【问题描述】:
我以前没有看到过这个问题,所以我希望这可能是一个新的东西,可以让你深入了解并帮助我解决棘手的问题。
我在一列中有超过 13K 个值的列表,这些值是位置。我们称它为 A 列。
这些位置无法排序,并且是单个值和多个值的混合。例如1A-01R 或 1B-04L、4C-3D、094-01F、TOR-5-A、TOR-F。
在我放在电子表格中的另一列中,它是按前缀细分的这些位置的列表,大约有 80 个不同的值。我们称之为 B 列。
在 B 列旁边,我列出了每个前缀位置的描述,例如垃圾箱、货架、院子、地板等。我们称之为 C 列。
我一直在努力解决的问题是,如何在 B 列的前缀列表中搜索 A 列中的值并返回 C 中的相应值?
似乎 Excel 喜欢根据完整值列表搜索不完整值,但如果您尝试反转逻辑,则会出错。
我尝试过使用 vlookup、索引和匹配都无济于事。
一个小例子。 A = 13k+ 行,B = 80 行,c= 80 行
Column A Column B Column C Column D
AREA 5 1A- RACKS Formula? = check A against range in column B and return C
094-10G 1B- RACKS
1J-H0L 1C- RACKS
099-03A 1D- RACKS
098-03C 1E- RACKS
1L-F2R 1F- RACKS
1K-L5L 1G- RACKS
1C-D5R 1H- RACKS
AREA 5 1I- RACKS
1F-L4L 1J- RACKS
1F-L4L W5E- RACKS
W5-E7 W5- FLOOR
W5-E7 098- RACKS
W5-E7 099- BINS
W5E-01L AREA FLOOR
更新 1
好的,根据我认为我们已经接近解决方案的建议。
我在 D 列中使用了以下公式,该公式似乎始终有效并返回 B 列中的值。
{=IFERROR(INDEX($B$2:$B$91,MATCH(1,COUNTIF(A2,""&$B$2:$B$91&""),0)) ,"")}
这是一个数组公式,所以我用的是ctrl+shift+enter。
现在我们需要做的就是让这个公式返回 C 列中的值,我想我们差不多了。
问题的另一部分可能是一步之遥,即向公式单元格返回多个值,在实例中,A 列的单元格中存储了多个位置。
更新 2。
好的,我们有一个工作公式,它可以根据 B 列中的范围检查 A 列的内容,并在 D 列中返回存储在 C 列中的值! =)
数组公式为:{=VLOOKUP(IFERROR(INDEX($B$2:$B$91,MATCH(1,COUNTIF(A3,""&$B$2:$B$91&""),0)) ,""),B:C,2,FALSE)}
location pre-fix loc type
W5-E3
W5-E3,W5-E4
W5-B6
W5-A4
W50-01
W5N-02R, W5-N5R,W5X-02L
W5K-00R, W5-L0R
W50-01
W5-C6
W5-AA01L
W5-F5
W5-A4,W5-E5,W5-C3,W5-A3
W5-C5,W5-B6
W5-C1
W5H-04,W5H-03,W5-D4,W5G-00,W5-A1
W5-D7
W5V-00
这是一个大问题,是否可以在 D 列的单个单元格中找到并返回在 A 列的单元格中找到位置的每个实例?
【问题讨论】:
-
请用一两个列 B 值的示例更新您的问题。
-
已添加示例数据。
标签: excel search indexing match