1

簡単に言えば、特定の範囲の行データを、その列見出しに基づいて正しい列に並べ替える必要があります。たとえば、A から E までのラベルが付けられた 5 つの列があり、その下の行に A から E までの範囲のデータがあるとします。すべての A を A 列に、すべての B を B 列に入れる必要があります。開始データの例:

例

並べ替え後の外観:

望ましい結果

また、空のセルが存在する可能性にも対応できる必要があります。例えば; 最初の例のデータの行 3 に B がない場合、C が B 列にあるようにデータを左にシフトしてはなりません。

その他の情報: 手作業では実行できません - 450 行以上。

4

1 に答える 1

2

また、空のセルが存在する可能性にも対応できる必要があります。

以上を踏まえた上で。

非 VBA 方法

データが右に移動するのに十分な数の列を挿入します

ここに画像の説明を入力

次の行 1 で、データから値を複製します

ここに画像の説明を入力

次のセルにA2この式を入れます

=IF(COUNTIF($H$2:$L$2,A1)>0,A1,"")

ここに画像の説明を入力

式を右にコピーします

ここに画像の説明を入力

次に、表の範囲から「$」を削除し、セルの数式のヘッダーに追加してA2、数式を下にコピーできるようにします。これはそれがどのように見えるかです

=IF(COUNTIF(H2:L2,$A$1)>0,$A$1,"")

同様に、B2式は次のようになります

=IF(COUNTIF(H2:L2,$B$1)>0,$B$1,"")

残りを変更します

ここに画像の説明を入力

セルA2:E2を強調表示し、式を下にコピーする方法。

ここに画像の説明を入力

最終的なSortedデータは次のようになります。

ここに画像の説明を入力

列をコピーA:Eし、列自体に特別な値を貼り付けA:Eて、数式が値に変更されてから削除されるようにしますCols H:L

于 2013-04-21T15:12:01.917 に答える