我正在尝试对从csv文件导入的数据进行排序。数据如下:
Columns
A | B
--------
t1 | 1
t3 | 9
t1 | 2
t2 | 5
t1 | 1
t3 | 13
t1 | 3
t3 | 11
t2 | 4
t2 | 7
t3 | 10
t3 | 10
我希望输出类似于:
Columns
D | E | F
----------------
t1 | 1 | 3
t2 | 4 | 7
t3 | 9 | 13
说明:基本上我需要做的是为A列中的每个不同值找到B列中的最低值和最高值,并将它们整齐地列出,如第二个示例所示。
之前我曾与VBA合作,所以如果必须通过VBA完成,那很好。我只是不知道如何完成这项任务。任何帮助,将不胜感激。
编辑:忘记提及,如果要使任务更简单,如果我必须根据col A按字母顺序手动对数据进行排序(因此将相同的值放在一起),那就很好了。
答案 0 :(得分:1)
我同意@chrisneilsen认为数据透视表是最好的选择。如果您设置使用公式,则可以尝试使用以下(都作为数组输入 - Ctrl+Shift+Enter
):
在单元格E1
中,它代表最小值:
=MIN(IF($A$1:$A$12=D1,1,MAX($B$1:$B$12)+1)*$B$1:$B$12)
在单元格F1
中,它代表最大值:
=MAX(IF($A$1:$A$12=D1,1,MIN($B$1:$B$12)-1)*$B$1:$B$12)
一般的想法是检查列A
中的哪些值等于您的目标值(列D
)。结果将是一个1
的数组,其中有一个匹配项,并以MIN
为例,列的最大值为1.这样做是因为我们要设置这等于在当前设置中可能达到的值,因此最大值+ 1将确保MIN
将返回合法的值。
这是使用Excel 2007的数据透视表。要创建,向数据添加列标题,选择数据,然后在功能区中单击Insert -> Pivot Table
。在对话框中,您决定放置它的位置(通常放在新工作表中,因此您可以保留默认值 - 我将其保留在同一工作表中以用于说明目的)。从那里,您可以通过拖动每个字段来安排它,使其与图片匹配。对于Max/Min
字段,只需将Value
字段拖到Values
部分两次即可。然后,在实际数据透视表中,您可以右键单击列中的某个值,然后选择Summarize Data By -> Min
以按每个键的最小值汇总: