1

30,000 行以上の Excel シート (オリジナル) があります。ヘッダー行の後に値行があり、Excel シートの行全体がこのように交互になっています。

私が必要とするのは、1 行のすべての一意のヘッダーのリストを新しいシート (Desired) にコピーし、それに関連するすべての値を対応するヘッダーの下にコピーすることです。

要するに、「オリジナル」シートを「Desired」に集約しようとしているのです。

これに関するヘルプは大歓迎です。

これは私のオリジナルシートのサンプルです:

Header1  Header6  Header5  Header3  Header4  Header2
1        223      3        4        5        6
Header4  Header3  Header2  Header6  Header5  Header1  Header7
12       53       879      234      546      123      876
Header2  Header3  Header5  Header6  Header4  Header1
abc      sdf      weroit   scfm     Aasd     ertmn
Header5  Header3  Header8  Header6  Header2  Header1  Header7  Header4
123      sdf      564      sdg      nhd      234      vdsq     234

これは私の希望のシートです:

Header1  Header2  Header3  Header4  Header5  Header6  Header7  Header8
1        6        4        5        3        223
123      879      53       12       546      234      876
ertmn    abc      sdf      Aasd     weroit   scfm
234      nhd      sdf      234      123      sdg      vdsq     564

ありがとう - ラケシュ

4

1 に答える 1

0

(a) データ サンプル (スペースで区切られていても!) と (b) 望ましい結果 (データ サンプルと一致している!) を提供していただきありがとうございます。

式を使用すると、1 つのオプションの可能性は次のようになります。

  • スプレッドシートのコピーで作業します。
  • 配列全体を既存のものと一緒に複製します(私は推測しますI1:P30000)。
  • 「クローン」の最初の行を削除 (シフトアップ) します。
  • ColumnI「Contains: Header」に基づいてフィルタリングし、行全体を削除します。
  • .. から .. のI横にカットして挿入します(あるべきものと一緒に)。AOM
  • 「Header1」をコピーし、「Header8」Q1まで右にドラッグします。
  • 以下の式を挿入Q2し、必要に応じて上下にコピーします。

    =IFERROR(INDEX($A2:$P2,1,MATCH(R$1,$A2:$P2,0)+1),"")

  • シートの内容全体を選択し、[コピー] > [形式を選択して貼り付け] > [値] を選択します。

  • を削除A:Qし、左揃えにして「Desired」として保存します。

これは、頻繁に必要な場合は明らかに VBA が勝っていますが、たまに使用する場合には非常に実行可能です。上記の手順を実行している間、マクロ レコーダーをオンにしますか?

于 2013-03-07T20:28:53.007 に答える