• ベストアンサー

エクセルのデータ、1行を複数行に展開し直したいです。

うまく説明できませんが、筆まめの住所録データをCSV形式にてエクセルに落とし込みました。 その状態では、宛名~備考までの項目が約20、A2~S2に1行に 展開されています。 住所録を社内で回覧できる状態にしたいのですが、今のままでは 項目が多すぎるため、1件について3行程度に項目を折りたたんで 展開したいです。  宛名|敬称|担当者|郵便番号|住所|番地|ビル名|備考    ↓    宛名 | 敬称 |担当者  郵便番号 | 住所 | 番地 | ビル名  備考  という風に。 別シートに「=sheet1!A2」「=sheet1!B2」というように配置し、 以下ドラックすると、データが2件飛ばしになってしまいます。 簡単に展開しなおせる方法を教えて下さい!! ずっと調べているのですが、一向に分からずに煮詰まってしまいました。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

住所録データ1件がA列~S列まであるんですよね。 質問には何も書いていませんが、本当は何件もデータがあって、別シートに1件につき3行で表示したい。と、言うことであっていますか? 例では8項目ですが、本来は19項目あると……。 質問を見ると住所録データが1件しかないような記述でしたので、思い違いでしたらごめんなさい。 とりあえず、7項目、7項目、5項目と別けると仮定します。 別シートのA2に以下を入れ、G4までコピーし、F4とG4の式を削除します。 =INDEX(Sheet1!$A:$S,INT((ROW()-2)/3)+2,COLUMN()+MOD(ROW()-2,3)*7) 次にA2からG4までを選択して下にずらずらっとコピーします。 表示する項目を変えるときは COLUMN()+MOD(ROW()-2,3)*7 が項目になりますので、1~19までの数字を入れてください。

その他の回答 (7)

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.8

ちょっと回り道なら、以下の方法があります 「秀丸エディタ」(以下「秀丸」) http://www.vector.co.jp/soft/win95/writing/se086280.html というソフトが必要となります。 シェアウェア(無料で試用できますが、継続して使うには代金の支払いが必要なソフト。ソフトによっては使える機能に制限がある)ですが、このソフトは機能制限なく試用できます。 まず、エクセルで「担当者」と「郵便番号」、「ビル名」と「備考」の間に列を挿入します。そこに、「☆」を入力します。 ------→ 宛名 敬称 担当者 ☆ 郵便番号 住所 番地 ビル名 ☆ 備考 宛名1 敬称1 担当者1 ☆ 郵便番号1 住所1 番地1 ビル名1 ☆ 備考1 宛名2 敬称2 担当者2 ☆ 郵便番号2 住所2 番地2 ビル名2 ☆ 備考2 宛名3 敬称3 担当者3 ☆ 郵便番号3 住所3 番地3 ビル名3 ☆ 備考3 これをコピーし、秀丸に貼り付けます。 秀丸で「検索」→「置換」のメニューで ・検索:☆\t ・置換:\r 「正規表現」にレ点 で、OKを押します。 そうすると、以下のようになります ------→ 宛名 敬称 担当者 郵便番号 住所 番地 ビル名 備考 宛名1 敬称1 担当者1 郵便番号1 住所1 番地1 ビル名1 備考1 宛名2 敬称2 担当者2 郵便番号2 住所2 番地2 ビル名2 備考2 宛名3 敬称3 担当者3 郵便番号3 住所3 番地3 ビル名3 備考3 これをコピーし、エクセルに貼り付けます。 ※解説 エクセルのデータを秀丸に「コピー&ペースト」すると“タブ区切り”のデータになります。 ここで「☆」マークをつけたところを「置換」で“改行”に置き換えます。 …☆\t ☆+タブ記号  \r 改行記号

chebrashka
質問者

お礼

みなさん、ご丁寧に回答いただき、誠にありがとうございました。 たくさんの方に回答していただけたことに大変驚き、うれしく思っています。 さて、肝心の資料作成ですが、mt2008さんの方法でうまくいきました。 パソコンが苦手で資料作成となるとすぐに壁にぶち当たってしまいます。 ですので、このような場でみなさんの知識をお借りできることが 非常に有難いです。 質問文に分かりづらい表現もありましたが、回答いただき本当に有難うございました。 今後ともよろしくお願いいたします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

質問がわかりにくい。しかし1行データを2行、3行に分割する問題だろう。たまにココの質問コーナーに質問が出る。 類型的な問題であることがわかっておれば、質問表現もすっきりできるだろう。 表の組み換え問題は、エクセル関数では、ややこしい式になって苦手の分野だと思う。 VBAなら素直なロジックで解決できる。 関数では 例データ (1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(1,7) (2,1)(2,2)(2,3)(1,4)(2,5)(2,6)(2,7) ・・ を 別シートの (1,1)(1,2)(1,3)(1,4) (1,5)(1,6)(1,7) (2,1)(2,2)(2,3)(2,4) (2,5)(2,6)(2,7) ・・・ に並べ替えるとすると (行の計算) シート1のどの行から持ってくるかを決めるのは、自分の行から計算して,シート2上での計算の INT((ROW()-1)/2)+1  の計算でシート1の行がもとまる。 (列の計算) シート1ののどの列から持ってくるかは、奇数行では第1-4列 偶数列では第5-7列だから =MOD(ROW()-1,2)*4+COLUMN() ---- (INDEX関数利用) 全体的にはシート1から=INDEX()関数で、上記で計算した行、列に基づいてデータをシート1から採ってくる。 ーーー 例データ Sheet2 下記の例の作り方が、わかりやすいことが納得できますか。 11 12 13 14 15 16 17 21 22 23 24 25 26 27 31 32 33 34 35 36 37 ・・・ 結果  Sheet3 A列   B列  C列   D列 11 12 13 14 15 16 17 0 21 22 23 24 25 26 27 0 31 32 33 34 35 36 37 0 ・・・ ーーー 式 Sheet3のA1に =INDEX(Sheet2!$A$1:$H$100,INT((ROW()-1)/2)+1,MOD(ROW()-1,2)*4+COLUMN()) A1の式をD1まで式を複写 A1:D1を下方向に式を複写。 0を出さない方法は列が7を超えていることをIF関数で組み込むが長くなるので今回は省略。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.6

#5です。 訂正です。 ROW()/3+1 ↓ (ROW()+1)/3+1

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

sheet1のA2から、データが入っているとする。これの必要な列を選んで、sheet2のA2から3行に表示するようにする。列方向は必要な列を選ぶのだから、ドラッグしてフィルすることはできない。 行方向をドラッグできるようにする。 たとえば、 sheet2 A2:=INDIRECT("sheet1!A"&INT(ROW()/3+1)) B2:=INDIRECT("sheet1!C"&INT(ROW()/3+1)) C2:=INDIRECT("sheet1!D"&INT(ROW()/3+1)) A3:=INDIRECT("sheet1!E"&INT(ROW()/3+1)) B3:=INDIRECT("sheet1!F"&INT(ROW()/3+1)) C3:=INDIRECT("sheet1!H"&INT(ROW()/3+1)) D3:=INDIRECT("sheet1!I"&INT(ROW()/3+1)) A4:=INDIRECT("sheet1!K"&INT(ROW()/3+1)) として、 A2~D4の3行を選択して、下にドラッグ/コピーする。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.4

はじめまして 本当は、マクロ(VBA)を使えば簡単です。 とは言っても、そのためにマクロを覚えるにはそれなりの時間がかかります。 関数では、「INDIRECT」を使えばできると思います。ほかに、 INT MOD ROW COLUMN の関数が必要なので、関数が複雑になります。 …関数でうまくやってみようと思いましたが、苦戦中です。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

別シートに =INDEX(Sheet1!$1:$65536,INT(ROW(A2)/2),IF(MOD(ROW(A1),2),COLUMN(A1),COLUMN(A1)+4)) 入れて右へ4つコピィ 下へコピィしてみてください。 或いは =INDEX(Sheet1!$1:$65536,INT(ROW(A2)/2),IF(MOD(ROW(A1),2),COLUMN(A1),COLUMN(A1)+3)) 右へ3つコピィ 下へひとつコピィ、右へ5列目までコピィ 2列を選んで下までコピィ

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

不要な列を選んで、列の非表示を行うのはどうですか? Ctrlキーを押しながら、列をクリックすれば、複数の列が選択できますから、選択後 書式メニュー・列・表示しない と選択してみてください。

関連するQ&A

  • Access VBAで複数行を1行にする方法

    いつも参考にさせていただいています。 今回、新規の注文を受けることになり、データフォーマットを見せてもらったのですが、 ヘッダーと明細情報の1:Nになっていました。 これを1行づつにしたいのですが、明細行にヘッダー行とのキーになる項目がありません。 いろいろ試してみましたが、うまくいきませんでした、ご教授していただければ幸いです。 データ 項目1 項目2 項目3    項目4  項目5 1   会社名 送付先住所 担当者名 連絡先 2   品名  数量    備考 上記をこうしたいです。 項目1 項目2 項目3    項目4  項目5   項目6  項目7  項目8 1   会社名 送付先住所 担当者名 連絡先   品名   数量  備考  

  • Excelで列に入っているデータを行に展開する方法

    添付画像のように、Excelシート上のA列に、店名、住所、電話番号が全て入っている状態を、A列に商店、B列に住所、C列に電話番号というように振り分けたいです。 シート上のデータは、既に振り分けてあるものと振り分けていないものが混在しています。 振り分けていないものは、店名と電話番号だけ、店名と住所と電話番号といったパターンがあります(他に、店名とメールアドレスだけの様なパターンも)。 店名+電話番号、店名+住所+電話番号 のパターンはある程度かたまっているため、Sheet上で範囲を手動で選択して、行への展開を実行したいと思っています。 関数かVBAで効率よく実行する方法を教えてください。 Excel2010です。

  • Excel作成の住所録データの加工方法を教えて下さい

    初心者です。Excelは入力だけで、加工の経験がなく困っています。 仕事で、Excelで作成した住所録のデータを宛名ラベルに 印刷することになりました。依頼主から届いた住所録のデータは、 A 会社名1 B 会社名2 C 郵便番号(ハイフンなし) D 都道府県名 E 市区町村住所番地 F 建物名 となっています。項目の左横のアルファベットはセルの位置です。 データ件数は約1000件あります。 教えて頂きたいのは、 1.郵便番号に一括してハイフンを入れる方法  (0001234→000-1234にしたい) 2.都道府県名・市区町村住所番地を一括して結合する方法 のふたつです。 拙い質問で申し訳ありません。 ご存知の方、いらっしゃいましたら教えて下さい。 宜しくお願い致します。

  • エクセル 宛名等を印刷する方法を教えてください。

    ●御指導いただきたき事。 1.住所録(エクセルで作成済み)を利用して、封筒の宛名・文書の宛名及び名札を作成する方法を教えてください。 2.全員ではなく、該当者のみ。 3.該当者の選択方法。 ● 住所録の概要(4行目項目名・データは5行目からです) B列  個人番号 C列  氏名 I列  郵便番号 J列  住所1 K列  住所2 ●封筒の宛名印刷方法。   印刷項目 C列の  氏名 I列の  郵便番号 J列の  住所1 K列の  住所2 敬称の  様 ●送付文書へ宛名の印刷方法 C列の  氏名 ●名札の印刷方法 B列の  個人番号 → 999 を四角の枠線で囲む C列の  氏名 敬称の  様    → 樋口 一葉 様 よろしくお願い致します。

  • エクセルで作った住所録からの複数県の抽出

     エクセルで右から順に,氏名・敬称・都道府県名・住所1(番地まで)・住所2(建物名、部屋番号等)・電話番号・FAX・携帯 を入力できるように,住所録を作りました。その住所録の中で,複数の県を除いた分(例えば,東北地方を除くというような)の宛名ラベルを印刷したい場合は,どのようにデータを抽出したら良いのでしょうか?使っているのは、Excel2000です。 ご指導、よろしくお願いします。

  • 住所データの変換 こんなことできるソフト

    住所データが数千件ありますが、入力されている形式がバラバラです。 下記のように統一する方法、あるいは市販ソフト、フリーソフトなどはありますか ? 元のデータは CSV形式です。 元データの一例 郵便番号、東京都千代田区千代田1-1-1東京ビル1階、会社名 目的とするデータ 郵便番号、東京都千代田区神田、1-1-1、東京ビル1階、会社名 ポイントですが「都道府県から番地の前まで」と「番地以降の住所」と「建物名」を分けたいということです。なお、元データの郵便番号は正確に入っています よろしくお願いします。

  • 1行のデータをスペースで区切って各セルへ振り分けるには?

    いつもお世話になっております。 再びつまづいてしまったため、お教えいただきたく、宜しくお願い致します。 1行目はタイトル 2行目はデータ作成日 3行目は項目 が入力されております。 4行目からデータが入っているのですが、A列内に1行でまとまっている状態です。 個々のデータの間は半角スペースで区切ってあり、このスペースを利用して、3行目の項目のセルへデータを移動したいと考えております。 下記が表の状態です。 |   A  |   B   |   C  |D |E | 1|タイトル  | 2|データ作成日| 3|  番号  |都道府県コード|市町村コード|番地|備考| 4|012-3456789 04679 003 ●□△659-8 ◎●△□●~| 5|123-4567890 00367 048 ■○●△4-9-2 △●□~| 4行目からがデータ群です。B列から右側にはデータが存在しません。 理想は下記の通りです。 |   A  |   B   |   C  |   D   |E | 1|タイトル  | 2|データ作成日| 3|  番号  |都道府県コード|市町村コード|  番地   |備考| 4|012-3456789 |  04679   |  003   |●□△659-8 |◎●△□●~| 5|123-4567890 |  00367   |  048   |■○●△4-9-2|△●□~| 下記のように組んでみました。 Worksheets("Sheet1").select Range("B4").Select Dim c As Range Dim j As Variant For Each c In Selection j =Split(c.Value," ") c =Offset(0,0).Resize(1,UBound(j)+1)=j Next c End Sub 4行目のみ理想通りに動き、5行目からがどうしても動きません。 環境はExcelは2002です。 以上、宜しくお願い致します。

  • Excel VBA 1行にあるすべての項目の検索

    いつもお世話になっております。 Excel97 VBA に関しての質問です。 Excelシート内のある1行に存在する項目から特定の項目を検索する方法ってありませんか? <例>   A   B   C   D   E   F      --------------------------- 1|会社  社員  番号  住所  番号  備考  というようなExcelになったってたとして、 Range("1").Search("住所") みたいな、一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね? ※上記プログラムは適当ですw どなたかご教授願います><

  • 郵便物 宛先のビル名間違い

    本日、郵便を出したのですが ビル名を間違えました(/ _ ; ) 郵便番号番号、 ○○県○○市○○町○○番地 △△ビル5階 という住所で、他は合っているのですが、△△の部分だけを間違えてしまいました。 郵便番号、宛名は合っています。 この場合、郵便物はちゃんと届くのでしょうか? 心配です(/ _ ; ) ご回答お願いします(´・_・`)

  • QL-800

    QL-800で郵便物に貼る宛名をエクセルからデータを取り込んで印刷する方法を教えて下さい。 印刷したい内容は、 「自分の名前」「自分の郵便番号」「自分の住所」「お届け先郵便番号」「お届け先氏名」「お届け先敬称」「お届け先住所1行目」「お届け先住所2行目」「お届け先住所3行目」「お届け先住所4行目」「内容品」です。 ※OKWAVEより補足:「ブラザー製品」についての質問です。

専門家に質問してみよう