【问题标题】:Excel - VLOOKUP to search two columnsExcel - VLOOKUP 搜索两列
【发布时间】:2017-06-30 05:25:55
【问题描述】:

这就是我想要做的。在我的延期交货工作簿中,我有一个项目 #(这要么由制造商零件 # 或零售零件 # 组成)和零件描述。与其手动输入每个部分的描述,我希望它能够根据 Item # 自动填充。所以我有一个 VLOOKUP 方程,它引用了我的库存工作簿,在制造商部件号、零售部件号和部件描述之间进行搜索。然后在找到时返回部件描述。我的代码如下所示:

=VLOOKUP($G3, '[Finished Inventory.xlsx]Finish goods'!$E$2:$G$4000, 3, 0)

所以我得到了这个工作......但并非没有问题。唯一返回正确值的行是包含制造商零件编号的行(这是搜索的第一列)。但这是奇怪的部分(至少对我而言):当我将 VLOOKUP 范围从 3 列(制造商零件编号、零售零件编号和零件说明)更改为 2(零售零件编号和零件说明)时,我的结果要好得多具有较少的#N/A 单元格。问题是现在带有制造商零件#s 的零件被留下#N/A。好像 VLOOKUP 只搜索搜索范围的第一列。

所以在全部输入之后,我意识到 VLOOKUP 只搜索一列...是否可以制定解决方案,使其搜索两列并返回第三列?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    所以要模仿具有两个搜索列和一个结果列的=VLOOKUP,请使用以下内容:

    =(IFERROR(INDIRECT("C" & MATCH($D$12,A:A,0)),INDIRECT("C" & MATCH($D$12,B:B,0))))
    

    D12 是您的输入单元格。

    INDIRECT 将获取一个文本字符串并将其转换为单元格引用,然后 Match 会在该值的第一个实例存在的列中为您找到一个 Row。

    在此示例中,首先搜索 A 列,如果返回错误,则搜索 B 列,无论哪种情况,结果都是 C 列中的匹配行

    a - 1 - res1
    b - 2 - res2
    c - 3 - res3
    d - 4 - res4

    在上面的示例中,输入 D12 的“c”将在我们的公式输出中为我们提供“res3”,其中“2”将为我们提供“res2”等等。

    【讨论】:

    • 哎呀,你就是那个男人,这非常有效。我有一个小问题:我的一些搜索值末尾有空格,并导致 #N/A 直到我修复它。是否可以定制此搜索以使其与“足够接近”匹配,或者我必须通过并修复所有这些?谢谢!
    • Excel 中任何问题的通用解决方案:使公式更长=(IFERROR(IFERROR(INDIRECT("C" & MATCH(D12,A:A,0)),INDIRECT("C" & MATCH(D12,B:B,0))), IFERROR(INDIRECT("C" & MATCH(D12 & " ",A:A,0)),INDIRECT("C" & MATCH(D12 & " ",B:B,0))))) 虽然这只会匹配单个空格,但我强烈建议只运行 VBA 宏来修剪您的搜索列的空格。
    • 我只是要运行一个宏,从长远来看似乎更好。如果您有这样做的手,我将不胜感激。如果没有,我会做一些goolging。谢谢楼主!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多