代码之家  ›  专栏  ›  技术社区  ›  Josh Gust

Excel未从表中提取正确的值格式以用于Match()公式

  •  0
  • Josh Gust  · 技术社区  · 2 年前

    我有一个通过Power Query从CSV导入的数据表。 我正试图根据导入的列值从不同的表中查找一个单独的标识符。

    当我写我的 Index( ,Match(), ) 引用导入表中的单元格作为匹配源的公式,我得到 #N/A 。评估步骤表明,导入表中的单元格值是字符串文字(即。 "76" )。列和表单元格显式地为“General”格式,因为它们是数字和字母数字混合的(即。 1 , 2 , 3 , 3A , 3B 等等)。

    我已经在导入表和查找表之间绘制了格式,以确保它们是相同的。

    在我的故障排除中,我还将76添加到了导入表之外的一个单元格中,并将我的索引匹配公式作为匹配源定向到该单元格(格式也与表相同)。使用表外的单元格时,引用将值拉为 76 并在查找中找到一个值。

    因此,将我的单元格引用放在导入表中是如何将引用值解析为字符串文字,并导致 match() 失败?

    PS。我正在使用Index Match,但如果我将查找表定向为适合VLookup的顺序,似乎也会出现同样的问题。

    0 回复  |  直到 2 年前
        1
  •  1
  •   andrewb    2 年前

    我不确定这是否有帮助,但为了强制MATCH将数字与字符串相匹配,可以尝试在lookup_value和lookup_array的末尾添加双引号,如下所示:

    =MATCH(D1&"",A1:A5&"",0)
    

    与确认 ctrl+shift+enter ,因为将“”附加到数组会使其成为数组公式。

    enter image description here

    如您所见,A列中的“2”是一个字符串(=“2”),但D列中的2是一个数字。通过在查找值和数组中都添加“”,excel将把这两个值都转换为字符串,并正确匹配2。