excel 用于获取两个值之间的公共数字的公式

ycl3bljg  于 2023-03-31  发布在  其他
关注(0)|答案(5)|浏览(243)

我试着从下面的列(A和B)中得到公共数字,以便
预期结果逻辑在COMMENT列中描述
输出在所有情况下都很好,除非A中的值= B中的值。在这种情况下,公式应该在A中显示相同的值,并且显示为空。感谢您的任何帮助。(在Excel 2016中工作)
我当前的数组公式是{=IFERROR(LEFT(A2,MATCH(FALSE,(MID($A2,ROW($L$1:$L$10),1)=MID($B2,ROW($L$1:$L$10),1)),0)-1),"")}
||B|当前结果|预期结果|场景|
| --------------|--------------|--------------|--------------|--------------|
| 万|小行星9999|||任何数字都相等显示为空|
| 一百四十九|一百四十九||一百四十九|所有数字都相等显示所有数字|
| 二千年|小行星2499|第二章|第二章|第一个数字相等显示第一个数字|
| 六六七千|小行星667|六六七百|六六七百|前6个数字相等显示前6个数字|

anhgbhbe

anhgbhbe1#

正如OP所建议的,把我的评论放在一个答案上:

{=LEFT(A2,MATCH(FALSE,(MID($A2,ROW($L$1:$L$10),1)=MID($B2,ROW($L$1:$L$10),1)),-1)-1)}

它适用于Excel 2016版本,但ROW($L$1:$L$10)有字符限制。比较较长的字符串应将其更改为ROW($L$1:$L$100)或其他(最大字符串长度+ 1),或如@大卫Leal建议的无限制为COLUMN($1:$1)
结果:

1yjd4xko

1yjd4xko2#

另一种选择:

C1中的公式:

=REDUCE("",LEFT(A1,SEQUENCE(LEN(A1))),LAMBDA(a,b,IF(COUNTIF(B1,b&"*"),b,a)))

另一个:

=LET(x,LEN(A1),y,LEFT(A1,SEQUENCE(x,,x,-1)),@FILTER(y,COUNTIF(B1,y&"*"),""))

更短:

=LET(a,LEFT(A1,SEQUENCE(LEN(A1))),XLOOKUP(1,SEARCH(a&"*",B1),a,"",,-1))

或者更短:

=LET(x,SEQUENCE(LEN(A1)),LEFT(A1,MAX(x*(LEFT(A1,x)=LEFT(B1,x)))))
2w3kk1z5

2w3kk1z53#

只是@user11222393在问题的注解部分提出的解决方案的变体,以包括一般情况(该解决方案假设最多9位数的部分匹配):

=LEFT(A2,MATCH(FALSE,MID(A2,SEQUENCE(LEN(A2)+1),1)
  =MID(B2,SEQUENCE(LEN(B2)+1),1),-1)-1)

下面是输出:

olhwl3o2

olhwl3o24#

以下公式将不需要数组输入,并给出样本数据中预期的结果。
=IFERROR(LOOKUP(2,1/(LEFT(A2,ROW($A$1:$A$10))=LEFT(B2,ROW($A$1:$A$10))),LEFT(A2,ROW($A$1:$A$10))),"")

编辑:

如果你想让它在字符长度上更灵活,那么由于INDEX的使用,它将是笨重的和半易失的:
=IFERROR(LOOKUP(2,1/(LEFT(A2,ROW($A$1:INDEX(A:A,MIN(LEN(A2),LEN(B2)))))=LEFT(B2,ROW($A$1:INDEX(A:A,MIN(LEN(A2),LEN(B2)))))),LEFT(A2,ROW($A$1:INDEX(A:A,MIN(LEN(A2),LEN(B2)))))),"")

68de4m5k

68de4m5k5#

让我们逐一分解您的标准:
任何数字相等则显示为空
这需要更清楚-你是说如果A或B中的字符串中有任何字符重复,将返回一个空字符串?
剩下的,我想我从你的问题中理解了:
所有数字相等,则显示所有数字
如果A中的值与B匹配,则返回匹配的值:

=IF(A1=B1,A1)

第一个数字相等,则显示第一个数字
如果A和B中的值的第一个数字匹配,则返回该数字
=IF(LEFT(A1,1)=LEFT(B1,1),LEFT(A1,1))
前6个数字相等,然后显示前6个数字
如果A和B中的值的前六位匹配,则返回这些数字
=IF(左(A1,6)=左(B1,6),左(A1,6))
然后我们可以将这些子标准带入一个公式中
=IF(A1=B1,A1,IF(LEFT(A1,1)=LEFT(B1,1),LEFT(A1,1),IF(LEFT(A1,6)=LEFT(B1,6),LEFT(A1,6),“无匹配标准”))

相关问题