如何比较下面指定的两个工作表列,但是工作表 1 中位置(列)中的字符串仅部分与工作表 2 中的位置(列)匹配?
1.只有 sheet1 中位置(列)的第一个两个字符和 sheet2 中位置(列)的第一个两个字符应该匹配。
2.只有 sheet1 中 location(column) 的任意两个字符和 sheet2 中 location(column) 的任意两个字符应该匹配。请帮忙
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
最佳答案
对于问题 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 值。
关于excel - 如何仅比较不同Excel工作表(列)中的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386784/