目的:询问比赛数据并为每个班级返回最快的工作时间。
以前的研究:已经搜索了多个论坛,但未找到任何相关内容。
说明:我正在尝试创建一个可以读取数据集的宏,然后查看类别列,找到该类别的最快时间,然后将其返回到指定的单元格。
示例(参考图片):
这是手动完成的方式
找到最快的4x-表;
非常感谢任何帮助!
答案 0 :(得分:0)
您不需要VBA来执行此操作。
但是你还需要一个列(可以隐藏)。例如,让N
列成为具有其他信息的列。它将包含来自C
列的3个最后一个字母(因为我们最后对4x-
感兴趣)。因此,在N
列中,您需要粘贴以下公式:=right(C3, 3)
(它将用于N3
单元格,但您明白了这一点。有了这个,在P8
中你需要输入公式:
=MAX(IF(N:N=O8, I:I))
这意味着,只有那些匹配O8
中值4x-
的人才能获得最大值。
答案 1 :(得分:0)
您可以使用以下用户定义的函数(只需将代码放在标准公式中)。要在工作表中使用它,请输入公式 - 比如说 - 在P6中:=Fastest_from_cat($C$4:$I$100,O6)
Public Function Fastest_from_cat(rng As Range, cat As String) As Double
Dim I As Long, col As Long
Dim Arr, tim As Double
tim = 999
Arr = rng.Value2
col = UBound(Arr, 2)
For I = 1 To UBound(Arr)
If Right(Arr(I, 1), Len(cat)) = cat And IsNumeric(Arr(I, col)) Then _
If Arr(I, col) < tim Then tim = Arr(I, col)
Next I
Fastest_from_cat = tim
End Function