如何比较下面指定的两个工作表列,但是sheet1中位置(列)中的部分字符串只与sheet2中的位置(列)匹配部分字符串?
1. sheet1中位置(列)的前两个字符和sheet2中位置(列)的前两个字符应匹配。
2.只有sheet1中位置(列)的任意两个字符和sheet2中任意两个位置(列)的字符应该匹配。请帮忙
Location(sheet1) Location(sheet2)
____________________________________________
india- north USxcs
India-west Indiaasd
India- east Indiaavvds
India- south Africassdcasv
US- north Africavasvdsa
us-west UKsacvavsdv
uk- east Indiacascsa
uk- south UScssca
Africa-middle Indiacsasca
Africa-south Africaccc
Africa-east UKcac
答案 0 :(得分:0)
对于问题1,您可以使用MID函数从每个单元格值中提取前两个字符并进行比较。
对于问题2,如果您可以接受预定的最大字符串长度,则有一个解决方案。它不是一个非常漂亮的解决方案!您可以使用嵌套的if语句,基本上是“展开循环”。此示例将单元格A1和B1与A1的长度进行比较,最多12个字符:
=IF(IFERROR(FIND(MID(A1,1,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,2,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,3,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,4,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,5,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,6,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,7,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,8,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,9,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,10,2),B1,1),0)>0,TRUE,
IF(IFERROR(FIND(MID(A1,11,2),B1,1),0)>0,TRUE,
FALSE
)
)
)
)
)
)
)
)
)
)
)
感谢James Jenkins的更新
似乎旧版本的Excel具有7个嵌套函数的限制。通过将相邻单元格中的公式链接在一起,您可以解决此问题(如果您不介意使您的电子表格更加难看)。事实上,如果你想要真正有创意,你可以使用列索引来计算搜索的偏移量,如:
=IF(IFERROR(FIND(MID($A1,(COLUMN(C1) - 3) * 6 + 1, 2), $B1, 1),0)>0,TRUE,
...repeat with +2, +3, +4, +5
if(D2 = FALSE, FALSE, TRUE)
)))))))
如果您需要更多字符串长度,则可以正确复制该列。请注意,当相邻列为空时,最里面的“if”应强制为TRUE或FALSE值。