Excel纵横字段查找最大、最小值和统计个数函数

2025-12-29 06:16:13

1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel纵横字段查找最大、最小值和统计个数函数 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。

Excel纵横字段查找最大、最小值和统计个数函数

2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。

Excel纵横字段查找最大、最小值和统计个数函数

3、然后插入了一个模块1,在代码框中复制如下代码:

Function COUNTAYX(ByVal y As Range, ByVal x As Range, ByVal cb As Range)

    '2020-10-8 21:30:29

    Dim r As Long, c As Long, i As Long, k1 As Long, k2 As Long

    r = cb.Rows.Count

    c = cb.Columns.Count

    k1 = 0

    For i = 2 To c

        If x.Text = cb.Cells(1, i).Text Then

            k1 = i

            Exit For

        End If

    Next i

    If k1 > 0 Then

        k2 = 0

        For i = 2 To r

            If y.Text = cb.Cells(i, 1).Text And cb.Cells(i, k1).Text <> "" Then

                k2 = k2 + 1

            End If

        Next i

        COUNTAYX = k2

    Else

        COUNTAYX = "横向字段无存!"

    End If

End Function

Function MAXYX(ByVal y As Range, ByVal x As Range, ByVal cb As Range)

    '2020-10-8 21:45:16

    Dim r As Long, c As Long, i As Long, k1 As Long, k2 As Long

    r = cb.Rows.Count

    c = cb.Columns.Count

    k1 = 0

    For i = 2 To c

        If x.Text = cb.Cells(1, i).Text Then

            k1 = i

            Exit For

        End If

    Next i

    If k1 > 0 Then

        k2 = 0

        For i = 2 To r

            If y.Text = cb.Cells(i, 1).Text And cb.Cells(i, k1).Text <> "" Then

                k2 = k2 + 1

                If k2 = 1 Then

                   MAXYX = cb.Cells(i, k1).Value

                Else

                   If MAXYX < cb.Cells(i, k1).Value Then MAXYX = cb.Cells(i, k1).Value

                End If

            End If

        Next i

    Else

        MAXYX = "横向字段无存!"

    End If

End Function

Function MINYX(ByVal y As Range, ByVal x As Range, ByVal cb As Range)

    '2020-10-8 21:50:12

    Dim r As Long, c As Long, i As Long, k1 As Long, k2 As Long

    r = cb.Rows.Count

    c = cb.Columns.Count

    k1 = 0

    For i = 2 To c

        If x.Text = cb.Cells(1, i).Text Then

            k1 = i

            Exit For

        End If

    Next i

    If k1 > 0 Then

        k2 = 0

        For i = 2 To r

            If y.Text = cb.Cells(i, 1).Text And cb.Cells(i, k1).Text <> "" Then

                k2 = k2 + 1

                If k2 = 1 Then

                   MINYX = cb.Cells(i, k1).Value

                Else

                   If MINYX > cb.Cells(i, k1).Value Then MINYX = cb.Cells(i, k1).Value

                End If

            End If

        Next i

    Else

        MINYX = "横向字段无存!"

    End If

End Function

Excel纵横字段查找最大、最小值和统计个数函数

Excel纵横字段查找最大、最小值和统计个数函数

Excel纵横字段查找最大、最小值和统计个数函数

4、以上操作动态过程如下:

Excel纵横字段查找最大、最小值和统计个数函数

5、回到工作表窗口,填写公式计算结果如下:

J3 :=COUNTAYX(I3,H3,$A$2:$E$18)

K3 :=MAXYX(I3,H3,$A$2:$E$18)

L3 :=MINYX(I3,H3,$A$2:$E$18)

其它复制上面行公式。 

Excel纵横字段查找最大、最小值和统计个数函数

Excel纵横字段查找最大、最小值和统计个数函数

6、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢