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

説明: 基本的に、列 A の異なる値ごとに列 B の最小値と最大値を見つけ、2 番目の例に示すようにそれらをきれいにリストする必要があります。

以前に VBA を使用したことがあるので、これを VBA 経由で行う必要がある場合は問題ありません。このタスクを達成する方法について、私は途方に暮れています。どんな助けでも大歓迎です。

編集:タスクを簡単にする場合は、列Aに基づいてデータをアルファベット順に手動でソートする必要がある場合(したがって、同じ値をまとめる)、言及するのを忘れました

4

1 に答える 1

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。ダイアログボックスで、配置する場所を決定します(通常、新しいワークシートに配置されるため、必要に応じてデフォルトのままにすることができます。説明のために同じワークシートに残しました)。そこから、各フィールドをドラッグして写真と一致するように配置できます。フィールドの場合は、フィールドをセクションに2回Max/Minドラッグするだけです。次に、実際のピボットテーブルで、列の値の1つを右クリックし、各キーの最小値で要約することを選択できます。ValueValuesSummarize Data By -> Min

ここに画像の説明を入力してください

于 2013-01-06T23:12:54.797 に答える