人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ひとつの列に入力されたデータを複数の列に分割したい。

住所データを整理しているのですが、例えばA列に

(A1)〒123-4567
(A2)東京都千代田区1-2-3
(A3)XYZビル
(A4)イロハ株式会社
(A5)〒123-4567
(A6)東京都千代田区4-5-6
(A7)ABCビル
(A8)ニホヘ株式会社

と続くデータを、タックシールを作るために

A列)郵便番号
B列)住所
C列)ビル名
D列)会社名

というように並べ替えたいのですが、どのようにすれば良いでしょうか?

データが多く、とてもコピペでは対応できそうにありません。

●質問者: bambyseto
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●10ポイント

データがあるシートを Sheet1 として そのシートに 以下のVBAのソースを記述します。

で 実行すると Sheet2に 出来上がります。


Sub jiko()

b = 1
c = 1
For a = 1 To Range("A1").End(xlDown).Row
 Worksheets("Sheet2").Cells(c, b) = Worksheets("Sheet1").Cells(a, "A")
 b = b + 1
 If b > 4 Then
 b = 1
 c = c + 1
 End If
Next a

End Sub
◎質問者からの返答

やってみたのですが、うまくいきません。

VBAの知識がないので、もっと簡単な方法が良いのですが・・・


2 ● hysr
●100ポイント ベストアンサー

試してみたところ、以下のような方法でも可能です。

※VBAが分かるのであれば、takntさんの回答の方が良いと思います。


郵便番号を表示したいセルには、 =OFFSET($A$1,4*(ROW()-1),0)

住所名を表示したいセルには =OFFSET($A$1,4*(ROW()-1)+1,0)

ビル名を表示したいセルには、 =OFFSET($A$1,4*(ROW()-1)+2,0)

会社名を表示したいセルには、 =OFFSET($A$1,4*(ROW()-1)+3,0)

を入れてください。これで表示されるはずです。

また、別シートに表示する場合は、$A$1 の箇所を シート名!$A$1 のように変更ください。

※補足です。

上記の算式を使う場合には、エクセルの一行目から使う必要があります。

◎質問者からの返答

この方法が初心者の私には一番簡単でした。

助かりました。ありがとうございます。


3 ● char_aka
●0ポイント

Excelなんですかね。

A列を選択してコピー。

空いてる列または新しいシートの

貼り付けたい場所で右クリックして、[形式を指定してコピー]とかそんなんをクリック。

[行と列を変える]旨の項目があると思うので、それをクリック。

それで解決できそうですが。

◎質問者からの返答

やってみたのですが、「コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません」というメッセージが出てしまいます・・・

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ