1

我正在尝试对从 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

说明:基本上我需要做的是从 B 列中为 A 列中的每个不同值找到最低和最高值,并将它们整齐地列出,如第二个示例所示。

我以前使用过 VBA,所以如果这必须通过 VBA 来完成,那很好。我只是不知道如何完成这项任务。任何帮助,将不胜感激。

编辑:忘了提一下,如果可以使任务更简单,如果我必须根据 col A 手动按字母顺序对数据进行排序(从而将相同的值放在一起)

4

1 回答 1

1

我同意@chrisneilsen 的观点,即数据透视表是最好的选择。如果您打算使用公式,则可以尝试使用以下内容(均以数组形式输入 - Ctrl+Shift+Enter):

在 cellE1中,这将代表最小值:

=MIN(IF($A$1:$A$12=D1,1,MAX($B$1:$B$12)+1)*$B$1:$B$12)

在 cellF1中,它将代表最大值:

=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按每个键的最小值进行汇总:

在此处输入图像描述

于 2013-01-06T23:12:54.797 回答