哪个Excel公式可以在没有VBA UDF的情况下做到这一点?

我在英文描述的想法不好,我不能find这个任务的解决scheme,然后我写了一个自定义UDF为Excel

Public Function ArrCompare(Rng1 As Range, Rng2 As Range) As Variant Dim vR1, strC As String Dim i As Long, Ui As Long vR1 = Rng1.Value2 strC = Rng2.Cells(1, 1).Value2 Ui = UBound(vR1) For i = 1 To Ui If InStr(1, strC, vR1(i, 1), vbBinaryCompare) > 0 Then vR1(i, 1) = True Else vR1(i, 1) = False Next ArrCompare = vR1 End Function 

但我真的想知道什么原生组合function可以做到这一点或哪些公式可以做到这一点?

例如:我有5个单元格(A1:A5),其值如下所示:

 111 112 113 114 115 

我在B1中有一个string内容“ 111,113,117,110 ”。 我写这个UDF在Sumproduct中使用就像这样

 =Sumproduct(--Arrcompare(A1:A5, B1)) in cell C1. 

它会返回符合我的条件的总细胞。

有没有人知道什么公式可以做到这一点,而无需vba?

这个和你的UDF一样的公式是:

 =SUMPRODUCT(--ISNUMBER(SEARCH(A1:A5,B1))) 

但我会排除范围内的空单元格,以便范围可以更大,以便为附加值准备:

 =SUMPRODUCT(ISNUMBER(SEARCH($A$1:$A$100,B1))*($A$1:$A$100<>"")) 

你实际上可以使用COUNTIF:

 =SUMPRODUCT(COUNTIF(B1,"*"&A1:A5&"*")) 

如果这些数字不总是3位数,那么这个数组公式会更可靠,因为它将search,111,113,117,110,

 {=SUM(1-ISERR(FIND(","&A1:A5&",",","&B1&",")))} 

要不就

 =SUMPRODUCT(1-ISERR(FIND(","&A1:A5&",",","&B1&","))) 

@Rory变体类似,但有点不同:

 {=SUM(COUNTIF(B1,"*"&A1:A5&"*"))} 

在这里输入图像说明


@Axel Richter类似,但也有一些区别:

 {=COUNT(SEARCH(A1:A5,B1,1))} 

在这里输入图像说明

在公式上插入公式然后按Ctrl + Shift + Enter来获得公式数组{}