如何使用公式计算两个表中字段中不同条目的数量?

如何使用公式计算两个表中字段中不同条目的数量?

我有两个表,它们包含不同的信息,但都包含一个名为“模型”的字段。我想知道两个表中有多少种不同类型的模型。

我可以使用下面的公式轻松找出每个表的不同类型数量,我发现这里

=SUMPRODUCT((table[field]<>"")/COUNTIF(table[field],table[field]&""))

但是,我想不出如何对两个单独的列表执行同样的事情,我想将它们合并为一列以用于单个方程式?

答案1

尝试这个简短的用户定义函数:

Public Function Kount(ParamArray Rng()) As Long
    Dim i As Long, r As Range, c As Collection, rr As Range

    Set c = New Collection

    On Error Resume Next
        For i = LBound(Rng) To UBound(Rng)
            Set r = Rng(i)
            For Each rr In r
                c.Add rr.Value, CStr(rr.Value)
            Next rr
        Next i
    On Error GoTo 0

    Kount = c.Count
    Set c = Nothing
End Function

它将计算任意数量的不相交范围内的不同条目的数量:

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装和使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要从 Excel 使用 UDF:

=我的函数(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

相关内容