首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于另外两列计算数值

基于另外两列计算数值
EN

Stack Overflow用户
提问于 2020-12-28 07:00:29
回答 5查看 106关注 0票数 0

如下例所示,在vba或excel公式中,count列的值应该是column1和column2的组合。

EN

回答 5

Stack Overflow用户

发布于 2020-12-28 08:16:40

比较-计数两列

  • 如果代码位于包含工作表的工作簿中,则可以将Range(FirstCell)替换为ThisWorkbook.Worksheets("Sheet1").Range(FirstCell),以确保它在正确的工作表上运行。

代码

代码语言:javascript
运行
复制
Option Explicit

Sub compareCountTwoColumns()
    
    Const FirstCell As String = "A2"
    
    Dim rng As Range
    With Range(FirstCell)
        Set rng = .Resize(.Worksheet.Rows.Count - .Row + 1, 2)
        Set rng = rng.Find( _
            What:="*", _
            LookIn:=xlFormulas, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious)
        If rng Is Nothing Then
            MsgBox "No data found.", vbCritical, "No Data"
            Exit Sub
        End If
        Set rng = .Resize(rng.Row - .Row + 1, 2)
    End With
    
    Dim Data As Variant: Data = rng.Value
    
    Dim Previous As Variant: ReDim Previous(1 To 2)
    Previous(1) = Data(1, 1): Previous(2) = Data(1, 2)
    Dim Current As Variant: ReDim Current(1 To 2)
    Dim Result As Variant: ReDim Result(1 To UBound(Data, 1), 1 To 1)
    
    Dim cCount As Long
    Dim i As Long
    
    For i = 1 To UBound(Data, 1)
        Current(1) = Data(i, 1): Current(2) = Data(i, 2)
        If Previous(1) <> Current(1) Or Previous(2) <> Current(2) Then
            Result(i - 1, 1) = cCount
            cCount = 1
        Else
            cCount = cCount + 1
        End If
        Previous(1) = Current(1): Previous(2) = Current(2)
    Next i
    Result(i - 1, 1) = cCount
    
    rng.Resize(, 1).Offset(, 2).Value = Result

End Sub
票数 2
EN

Stack Overflow用户

发布于 2020-12-28 07:45:03

新答案:

将此公式粘贴到第3列:=IF(AND(A4=A5,B4=B5),"",SUM(IF(A1=$A$1:$A$12,1,0)*IF(B1=$B$1:$B$12,1,0)))。确保在两个IF语句中都调整了范围的大小以适应整个范围...

老生常谈:

快速解决方案(使用helper列,假设数据从单元格A开始!):

将此公式放入第三列,然后向下拖动第四列,将此=IF(C2=C1,"",COUNTIF($C$1:$C$12,C1))放入

注意:如果你有20 | 12 | 01,它会根据它们的计数对它们进行分组,这将会中断。

此外,请确保调整COUNTIF($C$1:$C$12,C1)以适应整个范围

票数 0
EN

Stack Overflow用户

发布于 2020-12-28 07:53:56

您可以在单个公式中使用IF/COUNTIFS

代码语言:javascript
运行
复制
=IF(A1&B1<>A2&B2,COUNTIFS($A$1:$A$9,A1,$B$1:$B$9,B1),"")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65471281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档