2

Excelワークシートに学生の名前と(数値の)成績のアルファベット順のリストがあるとします。別のワークシートで、降順で並べ替えられた成績を表示したいと思います。それで全部です。

明確にするために:私は、ある範囲のセルを所定の位置にソートする方法を知っています。しかし、別の範囲への参照の範囲を作成し、それを手動で並べ替えると、参照が調整され、まだ並べ替えられていない列が表示されます。別のワークシートの列にリンクするのは簡単なことですが、Excelには「配列関数」の概念がありますが、セルの範囲を並べ替えられたバージョンにマッピングする機能(またはあらゆる種類の非対話型並べ替え)がないようです。 、 本当)。

私の当面の目標は、数字の降順で棒グラフを作成することです。そのため、並べ替えられていない範囲からこのようなグラフを生成する方法があれば、それについても聞きたいと思います。しかし、同じ範囲のセルに対して複数の注文が役立ついくつかのユースケースを考えることができます。

  1. 各数値と次に大きい数値(数値を並べ替えるときに簡単)の違いを示す列が必要ですが、メインのワークシートは名前のアルファベット順に並べ替えられています。

  2. 1つのワークシートにクライアント名のアルファベット順のデータがあり、同じデータ(の一部)を都市または日付で並べ替えた別のシートが必要です。まったく同じレイアウトが必要な場合を除いて、インタラクティブに並べ替えたり再並べ替えしたりすることはできません。

  3. 私のワークシートは時系列に並べられており、アルファベット順のバージョンが必要です。

私はグーグルで調べましたが、答えは「なぜそんなことをしたいのか」(別のユースケースの場合)から、範囲のソートされたコピーに貼り付けるVBAアプローチまで多岐にわたります。これは、自動化を除いて、今のところ私が行っていることです。データの選択、の貼り付け(Paste Specialを使用)、およびコピーされたバージョンの注文です。元のデータが変更された場合は、やり直す必要があります。

複数の注文が本当に必要になることはめったにないので、それらはサポートされていませんか、それとも私は何か明らかなものを見逃していますか?

4

2 に答える 2

2

私はいつもこれをしています。基本的に、必要な順序 (昇順または降順) をソートされていないリストの行インデックスに変換し、index を使用してその値を検索します。

=INDEX(<insert range here>, MATCH(SMALL(COUNTIF(<insert range here>, "<"&<insert range here>), ROW(1:1)), COUNTIF(<insert range here>, "<"&<insert range here>), 0))

ソートされた配列の例.xlsx

ソース

于 2012-05-15T17:09:26.177 に答える
1

ランク機能とvlookupとの組み合わせ。ファイルをリンクできません。しかし、Range("A1:C5") にデータがあるとします。

Rank Name Score
2    Scott 45
1    Mark  74
3    Chris 39
4    Brian 18

ランク列 (セル A1) の計算式 = =rank(C2,$C$2:$C$5,0)

次に Range("E1:G5") で:

Rank   Name    Score
1      Mark    74
2      Scott   45
3      Chris   39
4      Brian   18

どこ:

Rank column is hardcoded
Name column (F2) is  =VLOOKUP(E2,$A$2:$C$5,2,FALSE)
Score column (G2) is =VLOOKUP(E2,$A$2:$C$5,3,FALSE)
于 2012-05-15T17:00:31.363 に答える