This question is an extension of this - click me:
所以我有7个有序的复选框,生成128种可能被检查/取消选中的组合。每个复选框都链接到一个显示其状态的单元格 - true = 1,false = 0。
然后我有一个单元格将所有7个复选框的状态连接成一个7位数的字符串,例如1000011或0000000或1110011等 - 为我的查找表提供查找值(将每个可能的组合指定为一段文本)。
我遇到的问题是vlookup没有找到以前导1开头的字符串,例如1000001,或1110000,或1001110等,但奇怪的是匹配其中一个以前导1 - “10000000”开头的字符串。换句话说,当我只选择7的第一个复选框时,我会得到文本。当我选择第一个复选框以及其他6的任意组合时,我得到一个#N / A.当我取消选中第一个复选框时,使用其他复选框,我会得到文本。奇怪,我知道。
有人可以帮忙解决这个问题吗? 提前谢谢。
答案 0 :(得分:2)
简短回答:提供 FALSE 作为第4个 VLOOKUP()参数。
如果省略, 范围搜索 应该为TRUE,在这种情况下,VLOOKUP()列表中的项目顺序 <强>事,因为它们被理解为阈值,而不是单数值。
来自 VLOOKUP()帮助:
Lookup_value 要在表格数组的第一列中搜索的值。 Lookup_value可以是值或引用。如果 lookup_value 小于第一个中的最小值 table_array的列,VLOOKUP返回#N / A错误值。
现在仔细阅读:
Range_lookup 一个逻辑值,指定是否需要 VLOOKUP找到完全匹配或近似匹配:
如果为TRUE或 省略,返回精确或近似匹配。如果完全匹配 找不到,小于lookup_value的下一个最大值是 回。
必须放入table_array第一列中的值 升序排序;否则,VLOOKUP可能不会给出正确的 值。您可以通过选择排序来按升序排列值 从“数据”菜单中选择命令并选择“升序”。更多 信息,请参阅默认排序顺序 如果 FALSE ,VLOOKUP只会找到 完全匹配。在这种情况下,第一列中的值 table_array不需要排序。如果有两个或更多值 在table_array的第一列中,与lookup_value匹配, 使用的第一个值。如果未找到完全匹配,则表示错误 值#N / A被返回。
答案 1 :(得分:2)
您可以检查origin的格式是否等于目标的所有值,我的意思是,如果您在查找字段中将1000001作为NUMBER,并且在查找表中您具有与TEXT相同的值,则VLOOKUP永远不会找到它,因为Excel与NUMBER的值不同,值与TEXT不同。
我几乎可以肯定,在您的查找表中,您有一些值为NUMBER;要解决这个问题,当你拥有所有可能的组合时,你必须只选择查找表的列,然后转到数据 - &gt;文本到列,然后单击下一步 - &gt;下一步 - &gt;选择“文字”选项 - &gt;完成
如果这对您有用,请告诉我们。