在Excel中,需要匹配每行中的数字,并添加包含匹配项的单元格数

在Excel中,需要匹配每行中的数字,并添加包含匹配项的单元格数,excel,excel-formula,Excel,Excel Formula,在Excel中,我试图将一个列表中的数字与同一工作表上另一个列表中的数字进行匹配,然后计算有多少单元格包含匹配的数字 列A是一个名称列表。B列到F列是分配给每个名称的编号(主列表)。第I列到第N列输入了数字(条目列表)。我需要查看主列表每行中有多少单元格与条目列表中的所有单元格(几行)匹配 例如,在主列表中是John,他在单元格B2到F2中有两个数字,与列I到N中的单元格相匹配。因此结果(2)显示在G2中。请帮忙 我尝试了条件格式的countif,并且能够用颜色突出显示匹配的单元格,但是我不知道

在Excel中,我试图将一个列表中的数字与同一工作表上另一个列表中的数字进行匹配,然后计算有多少单元格包含匹配的数字

列A是一个名称列表。B列到F列是分配给每个名称的编号(主列表)。第I列到第N列输入了数字(条目列表)。我需要查看主列表每行中有多少单元格与条目列表中的所有单元格(几行)匹配

例如,在主列表中是John,他在单元格B2到F2中有两个数字,与列I到N中的单元格相匹配。因此结果(2)显示在G2中。请帮忙

我尝试了条件格式的countif,并且能够用颜色突出显示匹配的单元格,但是我不知道如何添加包含匹配数字的单元格数

=countif($H:$N,B2)>0

你也可以把Countif放在一个公式中

=SUMPRODUCT(COUNTIF(I:N,B2:F2))
或者如果I:N列中可能存在重复项,并且您只想对其计数一次

=SUMPRODUCT(--(COUNTIF(I:N,B2:F2)>0))

下面是第二个公式的示例,它只计算不同的事件


您还可以将Countif值组合在一个公式中

=SUMPRODUCT(COUNTIF(I:N,B2:F2))
或者如果I:N列中可能存在重复项,并且您只想对其计数一次

=SUMPRODUCT(--(COUNTIF(I:N,B2:F2)>0))

下面是第二个公式的示例,它只计算不同的事件

试试这个:

Sub macro()

Dim lastRow As Long, count As Long

lastRow = Cells(Rows.count, 1).End(xlup).Row

count = 0
For xrow = 2 To lastRow
    For xcol = 2 To 6
        For i = 9 To 14
            If Cells(xrow, xcol) = Cells(xrow, i) Then
                count = count + 1
            Else:
            End If
        Next i
    Next xcol
Cells(xrow, 7).Value = count
count = 0
Next xrow

End Sub
编辑: 将
if
语句中的
单元格(i,xcol)
更改为
单元格(xrow,i)
,并将其修复。在我的机器上工作。

试试这个:

Sub macro()

Dim lastRow As Long, count As Long

lastRow = Cells(Rows.count, 1).End(xlup).Row

count = 0
For xrow = 2 To lastRow
    For xcol = 2 To 6
        For i = 9 To 14
            If Cells(xrow, xcol) = Cells(xrow, i) Then
                count = count + 1
            Else:
            End If
        Next i
    Next xcol
Cells(xrow, 7).Value = count
count = 0
Next xrow

End Sub
编辑:

if
语句中的
单元格(i,xcol)
更改为
单元格(xrow,i)
,并将其修复。在我的机器上工作。

您需要检查主列表的每个编号和条目列表的每个编号吗?(例如,假设B2=1,H2=1,I2=1,J2=1;这将返回3)这可以用vba代码轻松完成,我只需要您所需的更多细节。Hi Jane,我已经包含了一个示例的图像。是,主列表中的每个数字都需要与条目列表中的每个数字进行比较。条目列表将有许多行数字可供比较。主列表需要列表中与条目列表中的任何数字匹配的每个名称的计数(每行计数)。我希望这是有道理的!非常感谢。我确实在VBA中尝试了以下函数,但它只适用于一行,并且主列表中将有许多行。Public Sub CountColorCells()'变量声明Dim rng As Range Dim lColorCounter As Long Dim rngCell As Range'设置范围集rng=Sheet1.Range(“B2:K2”)'循环遍历rngDo中每个rngCell范围内的每个单元格您需要检查主列表的每个编号和条目列表的每个编号吗?(例如,假设B2=1,H2=1,I2=1,J2=1;这将返回3)这可以用vba代码轻松完成,我只需要您所需的更多细节。Hi Jane,我已经包含了一个示例的图像。是,主列表中的每个数字都需要与条目列表中的每个数字进行比较。条目列表将有许多行数字可供比较。主列表需要列表中与条目列表中的任何数字匹配的每个名称的计数(每行计数)。我希望这是有道理的!非常感谢。我确实在VBA中尝试了以下函数,但它只适用于一行,并且主列表中将有许多行。Public Sub CountColorCells()'变量声明Dim rng As Range Dim lColorCounter As Long Dim rngCell As Range'设置范围集rng=Sheet1.Range(“B2:K2”)'在rngHello中的每个rngCell的范围内遍历每个单元格,谢谢。我尝试了这个,它突出显示了b2单元格的开头,即使它不是具有匹配号码的单元格。我怎样才能把所有突出显示的单元格都添加到行中呢?非常感谢。(并将每行的总数放入G2?)(我在CF中输入了这个,我不确定这样做是否正确,但当我进入G2时,它不起作用)您的计数如果对单个单元格没有问题,我的想法是,我的公式将进入G2以获得您评论中的总数。我不知道为什么它不适用于您,是否有任何错误消息或只是计数为零?添加了屏幕截图来说明G2中的公式工作。第二个公式在H2中,但只有在排除重复值时才需要它。您好,谢谢。我尝试了这个,它突出显示了b2单元格的开头,即使它不是具有匹配号码的单元格。我怎样才能把所有突出显示的单元格都添加到行中呢?非常感谢。(并将每行的总数放入G2?)(我在CF中输入了这个,我不确定这样做是否正确,但当我进入G2时,它不起作用)您的计数如果对单个单元格没有问题,我的想法是,我的公式将进入G2以获得您评论中的总数。我不知道为什么它不适用于您,是否有任何错误消息或只是计数为零?添加了屏幕截图来说明G2中的公式工作。第二个公式在H2中,但只有当您想排除重复值时才需要它。谢谢您的宏。它还不起作用,但我正试图操纵代码使其起作用。非常感谢。刚刚修好了。现在就试试谢谢你的宏。它还不起作用,但我正试图操纵代码使其起作用。非常感谢。刚刚修好了。现在试试看