excel函数多条件统计。我想统计左边数据,每行同时满足两个条件的行数。求大神指导。

比如1、在H6单元格里显示,统计出左边数据中,同时满足两个条件的行数:条件一数据6中的(1和2)同时出现在某一行;条件二数据7中的(89101173)有三个数也在这一行出... 比如1、在H6单元格里显示,统计出左边数据中,同时满足两个条件的行数:条件一 数据6中的(1和2)同时出现在某一行;条件二 数据7中的(8 9 10 11 7 3)有三个数也在这一行出现.比如2、在H7单元格里显示,统计出左边数据中,同时满足两个条件的行数:条件一 数据6中的(1和4)同时出现在某一行;条件二 数据7中的(6 3 10 2 7 5)有三个数也在这一行出现. 展开
 我来答
Excel办公_VBA
2017-05-07 · 教育领域创作者
个人认证用户
Excel办公_VBA
采纳数:3279 获赞数:2332

向TA提问 私信TA
展开全部

使用vba实现的,实现结果如下图,运行前,清空h列的数字,然后点击按钮运行,

完全是一键搞定

Sub 按钮2_Click()
    Application.ScreenUpdating = False
    arr = [b5].CurrentRegion
    brr = [h5].CurrentRegion
    
    For j = 2 To UBound(brr)
        For i = 2 To UBound(arr)
            a = 0
            b = 0
            c = 0
            For k = 1 To 5
                If arr(i, k) = brr(j, 2) Then
                    a = 1
                Else
                    If arr(i, k) = brr(j, 3) Then b = 1
                End If
                If a + b = 2 Then
                    c = 1
                    Exit For
                End If
            Next k
            If c = 1 Then
                a = 0
                For k = 1 To 5
                    For l = 4 To 9
                        If arr(i, k) = brr(j, l) Then
                            a = a + 1
                            Exit For
                        End If
                    Next l
                    If a = 3 Then
                        brr(j, 1) = brr(j, 1) + 1
                        Exit For
                    End If
                Next k
            End If
                
        Next i
    Next j
    [h5].CurrentRegion = brr
    Application.ScreenUpdating = True
End Sub


按alt+f11打开vbe,插入模块输入代码即可

不能上传文件了

追答
请结单
bdghzrn0ea7
2017-05-07 · TA获得超过5215个赞
知道大有可为答主
回答量:2320
采纳率:87%
帮助的人:563万
展开全部
用自定义函数吧
在H6打入公式=ctr(B$6:F$18,I6:J6,K6:P6)
在向下填充即可
三个数据区域的行列数和位置都可变
条件也可改:代码倒数第二行的u、v条件
想增加条件区域,加代码即可
.
自定义代码如下
Function Ctr(a As Range, b As Range, c As Range) As Integer
n = 0
For i = 1 To a.Rows.Count
s = "": For j = 1 To a.Columns.Count: s = s & " " & a(i, j): Next
u = 0: For j = 1 To b.Columns.Count: u = u - (InStr(s, " " & b(1, j)) > 0): Next
v = 0: For j = 1 To c.Columns.Count: v = v - (InStr(s, " " & c(1, j)) > 0): Next
If u = 2 And v > 2 Then n = n + 1
Next

Ctr = n
End Function
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柔软的Bp
科技发烧友

2017-05-07 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:66%
帮助的人:8972万
展开全部
在H6单元格里显示,统计出左边数据中,同时满足两个条件的行数:条件一 数据6中的(1和2)同时出现在某一行,的行数有多少行?
=SUMPRODUCT((I6:I100=1)*(J6:J100=2))
其他类推
追问
左边区域有300多行

,右边的区域有5000行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可爱就是笑
2017-05-07 · TA获得超过1599个赞
知道大有可为答主
回答量:4011
采纳率:70%
帮助的人:623万
展开全部

QZ是要在H列写公式是吧?假设符合条件1的数据有5行,符合条件2的数据有4行,其中有3行是也符合条件1的要求的,那么H列结果应该是几?

追问
你的运行结果是对的。
按alt+f11打开vbe,插入模块输入代码即可,之后的不会弄了。。。发给吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式