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

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

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



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

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)
其它复制上面行公式。


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