• ベストアンサー

エクセルのデータ加工

エクセルのセルで、縦に1行目名前A、2行目住所A、3行目電話番号A、4行目名前B、5行目住所B、6行目電話番号B・・・、という具合に並んでいるデータを横に1列目1行目名前A、1列目2行目名前B、2列目の1行目住所A、2列目の2行目住所B、3列目の1行目電話番号A、3列目の2行目電話番号B、という風に加工したいのですが、一つ一つセルを移動するのではなく、なにか良い方法はありませんでしょうか?ちなみにデータは1000件ほどあるのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • rurumiko
  • ベストアンサー率31% (32/102)
回答No.2

まず1行目名前Aの上に2行挿入。 データの列を隣の列にセルを1つ上にずらしてコピペします。(1行目名前Aの隣に2行目住所Aがくるように貼り付ける) 次にさらに隣の列にもうひとつセルを上にずらしてコピペします これで質問者様のご希望の並びのデータが3行おきに並ぶことになります。 次は余分な行を消す作業です 元データの左隣に列を1列挿入します。 1列目1行目名前Aの左隣のセルに○を記入します 2行目住所A、3行目電話番号Aの左隣のセルに×を記入します ○××のセルを選択して、Ctrlを押しながら、データの最終行までオートフィルをしてください。○××が順番に記入されます。 あと一息です。 オートフィルタで○を選択。質問者様のご希望のデータが取り出せるはずですので、別シートにコピペしてください。 1発ですっきりというわけにはいきませんが、特に難しい技術を使用せずとも、目的が達成できると思います。

hirozo14
質問者

お礼

ありがとうございました。参考にさせていただきます。

その他の回答 (2)

  • a987654
  • ベストアンサー率26% (112/415)
回答No.3

データあるシートをSheet2としてA1セルからデータが あるものとします。 sheet1の1行目から横並びのデータを作るとします。 Sheet1のA1セルに  =OFFSET(INDIRECT("Sheet2!"&ADDRESS(ROW()*5-4,1,4)),0,0) B1~E1セルにそれぞれ  =OFFSET(INDIRECT("Sheet2!"&ADDRESS(ROW()*5-3,1,4)),0,0)  =OFFSET(INDIRECT("Sheet2!"&ADDRESS(ROW()*5-2,1,4)),0,0)  =OFFSET(INDIRECT("Sheet2!"&ADDRESS(ROW()*5-1,1,4)),0,0)  =OFFSET(INDIRECT("Sheet2!"&ADDRESS(ROW()*5,1,4)),0,0) あとはA1:E1を必要なだけコピー シート名が別のときは"Sheet2!"の部分を変更してください。 (シート名の後に!を忘れずに加えて下さい。)

hirozo14
質問者

お礼

ありがとうございました。参考にします。

noname#192382
noname#192382
回答No.1

C,Dに関するデータはどこにあるのですか

hirozo14
質問者

お礼

ありがとうございました。解決しました。

関連するQ&A