Excel で列のコピーを自動的に作成するにはどうすればよいですか?

Excel で列のコピーを自動的に作成するにはどうすればよいですか?

毎日、40 列以上、行数が増加している (現在 250 万) 生データを取得し、特定の形式に従って準備する必要があります。


生データに 5 つの列があると仮定します。

名前 - 姓 - 年 - 国 - 性別


必要なのは次のものです:

姓 - 性別 - 国

つまり、いくつかの列だけを異なる順序で必要とすることになります。

答え1

クイック アクセス ツール バーの [繰り返し] をクリックして、最後のアクションを繰り返します。キーボード ショートカットは、Ctrl + Y または F4 を押します。

答え2

250 万行はどこから来たのでしょうか? Excel ではありません。Excel シートには 1,048,576 行しか含められないからです。

Excel 2010 または 2013 のデータ モデルを使用する場合、Excel の制限を超えて処理できますが、データはシートに表示されません。Power Query を使用すると、さまざまなソースから大量のデータ (Excel シートの制限を超える) をデータ モデルにインポートできます。Power Query は、列を削除したり、列の順序を変更したりするなど、ソース データを変換するためにも使用できます。

Power QueryはExcelアドインとしてダウンロードできますこここれは Excel 2010 および 2013 のほとんどのエディションで動作し、Excel 2016 に組み込まれます。

答え3

5列の生データが にあると仮定するとSheet1、行1にはヘッダーが含まれています。名前 - 姓 - 年 - 国 - 性別データは 2 行目から始まります。

次に、 の行 1 に必要な 3 つのヘッダーを配置しSheet2、A2 に次の数式を入力して、下または横にドラッグします。

=INDEX(Sheet1!$A2:$E2,MATCH(A$1,Sheet1!$A$1:$E$1,0))

これは、各行のすべての列を検索して、右側の列の値を返す水平ルックアップです。

MATCHこれに時間がかかりすぎる場合 (計算時間が問題になるようです)、正しい列を一度検索 ( ) してから、検索を解除することができます。たとえば、のindex行 2 に 3 つの値を含む行を追加し( のデータは行 3 から始まると仮定します)、 を入力して、横方向と縦方向に塗りつぶします。Sheet2=MATCH(A$1,Sheet1!$A$1:$E$1,0)Sheet1=INDEX(Sheet1$A3:$E3,A$2)Sheet2!A3

関連情報