我有一个包含以下数据的表:
ID Team1 Team2 Team3 Team4 Team5 Team6
1 5 0 1 2 3 1
3 1 4 0 2 4 1
5 0 0 4 2 1 1
6 4 1 1 2 0 0
我希望从这些数据中获取3个新列,其中包含所有列中的第1,第2和第3个最高值,如下所示:
ID Team1 Team2 Team3 Team4 Team5 Team6 Top1 Top2 Top3
1 5 0 1 2 3 1 5 3 2
3 1 4 0 2 4 1 4 4 2
5 0 0 4 2 1 1 4 2 1
6 4 1 1 2 0 0 4 2 1
这可以在Access中使用吗?我想对它们进行排名,以便相等的值按递增顺序排列,例如:
ID Value Rank
3 4 1
3 4 2
3 2 3
3 1 4
3 1 5
如果有办法通过这种方式实现它,我愿意使用VBA。如果以这种格式提取前3个值更容易,那么数据也可以不透视。
不透明数据样本:
ID Team Score
1 Team1 5
1 Team3 1
1 Team4 2
1 Team5 3
1 Team6 1
3 Team1 5
3 Team2 4
3 Team4 2
3 Team5 4
3 Team1 1
答案 0 :(得分:0)
采取此功能(来自Finding Max of 3 Inputs VBA)
Sub Maxthree()
'Calculates the maximum of three numbers'
Dim x, y, z As Single
x = InputBox("Enter the first number!")
y = InputBox("Enter the second number!")
z = InputBox("Enter the third number!")
MsgBox ("X: " & x & " Y: " & y & " Z: " & z)
If x > y Then
If x > z Then
MsgBox ("the maximum is : " & x)
Else
MsgBox ("the maximum is : " & z)
End If
Else
If y > z Then
MsgBox ("the maximum is : " & y)
Else
MsgBox ("the maximum is : " & z)
End If
End If
End Sub
调整它以返回最高值(而不是在msgbox中显示)。构造另外两个函数来获得第二个和第三个值。
在Sql查询中使用这些函数到你想要的列,
祝你好运。