• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 3つのシートを1つに取り纏める No2)

エクセルで3つのシートを1つにまとめる方法

このQ&Aのポイント
  • エクセルのスペシャリスト様への質問です。3つの担当者のシートを集計シートにまとめて表示させたいです。また、空白の行は自動で削除したいです。マクロが苦手なので関数を教えていただけますか?
  • エクセルのスペシャリスト様への質問です。3つの担当者のシートのデータを集計シートにまとめて表示させたいです。また、空白の行は自動で削除したいです。マクロが苦手なので関数で解決する方法を教えてください。
  • エクセルのスペシャリスト様への質問です。3つの担当者のシートにあるデータを集計シートにまとめて表示させたいです。空白の行は削除したいです。マクロではなく関数を使って解決する方法があれば教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 基本的には回答No.1様の方法に似た方法ではありますが、私の場合は、作業用シートの1行目に入力するシート名を間違えたり、将来的に作業人数を増やした場合における新たなシート名を記入するために、1行目が空欄の列を設けて置いたりした場合においても、エラーとはならない様にするために、次の様にします。  まず、作業用シートのA1セルに「シート名」と入力して下さい。  次に、作業用シートのB1~D1セルに各担当者シートのシート名を入力して下さい。  次に、作業用シートのB2セルに次の関数を入力して下さい。 =IF(B$1="","",IF(ISERROR(1/(INDIRECT("'"&B$1&"'!A"&ROW())<>"")),"",ROW()+COLUMNS($B:B)*10000000))  次に、作業用シートのB2セルをコピーして、作業用シートのC2~D2の範囲に貼り付けて下さい。  次に、作業用シートのB2~D2の範囲をコピーして、同じ列範囲の3行目以下に貼り付けて下さい。  次に、集計シートのA4セルに次の関数を入力して下さい。 =IF(ROWS($4:4)>COUNT(作業用!$B:$D),"",INDEX(INDIRECT("'"&INDEX(作業用!$B$1:$D$1,INT(SMALL(作業用!$B:$D,ROWS($4:4))/10000000))&"'!A:C"),MOD(SMALL(作業用!$B:$D,ROWS($4:4)),10000000),COLUMNS($A:A)))  次に、集計シートのA4セルをコピーして、集計シートのB4~D4の範囲に貼り付けて下さい。  次に、集計シートのA4~D4の範囲をコピーして、同じ列範囲の5行目以下に貼り付けて下さい。  以上です。  因みに、 COLUMNS($B:B)*10000000 等の箇所において掛け合せる数を、何故100や1000等ではなく、10000000としているのかと申しますと、例えば掛け合せる数を100とした場合において、もしも、「ああ」シートの100行目よりも下の行、例えば102行目などの所にデータが入力されていますと、作業用シートの「ああ」の列の102行目の所には「202」(=102+100)と表示されてしまい、右隣の「いい」列の2行目に表示される「202」(=2+100)と区別がつかなくなります。  一方、現行のExcelで使う事が出来る行数は、1048576行までですので、列数×10000000としておけば、万が一にも上記の様な事が起こる恐れは無くなるため、掛け合せる数を10000000としております。  若しくは、10000000の代わりに ROWS(A:A) 等とするという方法もあります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >マクロは苦手です。関数でなんとかなりませんか? というコトなので・・・ ↓の画像のように作業用のSheetを使用します。 作業用SheetのSheet名を仮に「作業用」としています。 作業用Sheetの1行目は各担当者のSheet名を入力 作業用SheetのA2セルに =IF(INDIRECT(A$1&"!A"&ROW())="","",COLUMN(A1)*10000+ROW()) という数式を入れ列・行方向にオートフィルでずぃ~~~!っとコピー! 最後の「集計」SheetのA5セルに =IF(COUNT(作業用!$A:$C)<ROW(A1),"",INDEX(OFFSET(INDIRECT(INDEX(作業用!$A$1:$C$1,,INT(SMALL(作業用!$A:$C,ROW(A1))/10000))&"!A:A"),,COLUMN()-1,,1),MOD(SMALL(作業用!$A:$C,ROW(A1)),10000))) という数式を入れ、列・行方向にオートフィルでコピー! これで画像のような感じになります。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 検索したい項目だけリストアップ

    こんにちは質問です。 仕事でいきずまってます。エクセルのスペシャリスト様、ご教授願います。 3人の担当者のsheet(ああ、いい、うう)があり、工場名、工事名称、担当者が記入してあります。 1、集計シートの検索欄に工場名を入力したら、   3人の担当者sheetにあるデータと一致する工場名の行を表示させたいです。 2、担当者の名称を入力したら、その担当の工事をすべて表示したいです。 3、工場名および担当者名を入力したら   3人の担当者sheetにあるデータと一致する工場名及び担当者の行を表示させたいです。 すべてを網羅できますでしょうか? マクロは苦手です。関数でなんとかなりませんか?

  • Excel 空白行を上に詰めるマクロ

    関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2   A   B   C     A  B  C 1 あ  い  う   1 あ  い  か 2        か   2 (空白行) 3 き  く   け    3 き  く  し   4 こ  さ   し   4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。

  • 複数シートから空白ではない行をすべて抽出

    タイトル行A1:D1、データの中身は、A2:D11の全く同じ様式のシートが複数あります。シート名はバラバラです。 全シートの空白ではない行を全て別の集計シートに抽出したいです。 空白行は抽出しません。 これを関数でどのようにつくればよいのでしょうか? 関数で無理ならVBAでお願いします。

  • 複数シートに振り分けたデータをそれぞれ集計したい

    こんにちは。 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 200    PC3  20,000  イ 300    PC4  30,000  イ 上記のようなデータがシート1にあるとして、業者毎に他のシートにデータを転送するまでは何とか無事にマクロを組むことが出来ました。 この後、業者毎に分けたそれぞれのシートの最終行で金額の集計をしたいのです。 例えばシート2の業者アのデータであれば↓ 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 総計          20,000   同じようにシート3の業者イのデータ、シート4の業者ウのデータ・・・を集計したいのですが、どの様なマクロを組めばそれぞれのシートの最終行で集計が表示されるのでしょうか? ちなみに、商品数、業者数とも変動するため、固定値が入れられません。 本やインターネット等でいろいろ調べてみたのですが、分かりませんでした。 お分かりになる方がいらっしゃいましたら、どうかご教示ください。 宜しくお願い致します。

  • エクセル  困ってます;シート間のリンクについてです。

    sheet1に収められているデータで、sheet2に、新たにsheet1から必要なデータのみを関数で拾い出しました。 こんな感じです。(関数ってほどじゃないんですが) =sheet1!$C$3 そのsheet2を使ってsheet3にまたsheet2のデータをリンクさせたいのです。 なぜかと言いますと、sheet1はいろんなデータが織り交ざって収められているので、その中から必要なデータを拾い出しするのが難しいと分かった為、このようにワンクッション置くことにしました。 (sheet2で、今回必要なデータの整理をしたわけです。) sheet1を整理しないと、sheet3に引っぱるのがすごく難しかったので。 でもsheet1は勝手に表を変えられないので・・。 問題はここからなのですが、sheet2のデータをsheet3の表に引っぱった際、きちんとデータが表示されないのです。 sheet3に置いた関数式もかなり複雑なので(人に教えられて設置したんですが)、自分でも把握しきれずなにが原因なのか分からない状態なのです。 とりあえず空白の部分に0が表示されてしまうのが問題なのかも知れない・・・と思い、 =sheet1!$C$3 この式を =IF(sheet1!$C3="","",sheet1!$C3) このように、元データが空白のセルはsheet2に表示されないようにしてみましたが、やはりきちんと引っぱられてきません。 ※何が原因か分からないので、別に、計算式の入っていないsheet2で表を作成してみたところ、sheet3には普通に引っぱることができました。 (でもリンクしないと意味が無いのですが・・・) どんな問題が考えられますか・・・? 補足はいくらでもします! よろしくお願いします!

  • Excel シート間のデータの照合

    Excelで、シート間のお客様データ(だいたい各1万件)を照合します。下記は現在の照合方法ですが、これでは時間がかかるうえ手作業が多く発生しミスにつながります。頻繁に行う作業なので、関数でも、マクロでも、とにかくもう少し簡単にできる方法がありましたら、どうぞご教授ください。よろしくお願いします!! 【目的】 シート「sheet2008」には2008年度のデータ。シート「sheet2007」には「sheet2008」と同じ形式の2007年度のデータが入っています。シート「sheet2008」に、そのお客様の2007年度の担当営業マンを表示させたいのです。 【例】 列A(電話番号): 011-231-1112 列B(名前):佐藤 一郎 列C(住所):北海道札幌市中央区北1-1-1 列D(担当営業マン):鈴木 新規の列(2007年度の担当営業マン):鈴木  ・「sheet2008」「sheet2007」はほぼ同じデータですが、一部のお客様は名前が変わっていたり、住所が変わっていたりします。  ・「sheet2007」にないお客様が「sheet2008」にあったり、その逆があったりして、各シートのデータ件数は一致しません。  ・名前が同じでも住所が違うデータ、電話番号が同じでも担当営業マンが違うデータは別者として扱います。  ・「顧客ID」のような“必ずユニークな情報”は存在しません。 【現在の照合方法】 (1)「sheet2008」の各列の前に空白列を挿入する。  (データの1行目はタイトル行…B1:電話番号/D1:名前/F:住所/H:担当営業マン)  (データの2行目以降はデータ)     列A(空白行):     列B(空白行): 011-231-1112     列C(空白行):     列D(名前):佐藤 一郎     列E(空白行):     列F(住所):北海道札幌市中央区北1-1-1     列G(空白行):     列H(担当営業マン):鈴木 (2)「sheet2007」を列Aの電話番号で昇順に並べ替える。 (3)「sheet2008」の電話番号が「sheet2007」にあるかを調べる。     A2:「=IF(B2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,1,0)),"○","▲")」 (4)(3)で調べた「sheet2008」の電話番号と同じ行にある名前/住所が「sheet2007」にあるかを調べる。     C2:「=IF(D2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,2,0)),"○","▲")」     E2:「=IF(F2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,3,0)),"○","▲")」 (5)電話番号/名前/住所がすべて一致するデータについて、「sheet2007」にある担当営業マンの値を列Gに表示させる。     G2:「=IF((AND(A2="○",C2="○",E2="○"))=TRUE,(VLOOKUP($B2,Sheet2007!$A:$D,4,0)),"▲") (6)"▲"やエラー値で表示される計算結果について、目視で確認する。 (終了)

  • エクセルシートのまとめ方

    クセル!複数のシートを一枚のシートにまとめ方。 シート2Aさん シート3Bさん 同じ表の形 1行目項目 2行目~25行目AさんBさん各データ (シート2)Aさん 地名 表題  金額 大阪 テスト 100 東京 山本  200 (シート3)Bさん 地名 表題  金額 福島 弁当 100 徳島 お茶 200 北海道 かに 300 シート1(集計表)に各データを並べたい (シート2) 地名 表題  金額 大阪 テスト 100 東京 山本  200 福島 弁当 100 徳島 お茶 200 北海道 かに 300 上記表を作成したいのですが、Aさんが5行になった場合は その内容を東京の行の下に入るようにしたいのですがどうすればよいでしょうか? それぞれをリンクさせてもよいのですが、空白が入ってしまったり 処理が大変です。 自動的に反映することはできますか?

  • エクセル 関数 別シートへの抽出

    エクセル関数について質問します。 「数値の入ったセルだけを、その行ごと丸々別シートに抽出する方法」 について教えてください。 例、C列に空白セルと1、2や3など、数値の入ったセルがあります。空白セル以外の数値の入ったセルを、その行ごと別シートに抽出したい。 C3とC5に数値が入ってる→3行目と5行目を別シートに抽出する。 このようなことは関数でできるのでしょうか? マクロでないと無理でしょうか? お力をお貸しください。 よろしくお願いします。

  • エクセル 集計行をデータの次の行に表示させたい。空白セルを削除したい。

    基準となるグループの最後のグループの集計行はなぜか、選択範囲の下に表示されます。 例えば  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目   B    4   1000   4    4000  5行目   C    3   500   10   5000     以下空白   :   :   :    :  (20行目)   ここまで空白 以上のような任意の表(1行目から20行目までデータが入力されています。上記のような3社で4行で終わる場合もあれば、5社で10行という場合もあります)で会社ごとの合計金額を集計したい時に、(1行~20行を選択し、グループの基準:会社 集計の方法:合計 集計するフィールド:合計金額 集計行をデータの下に挿入という設定)  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目     A集計            650  5行目   B    4   1000   4    4000  6行目     B集計            4000  7行目   C    3   500   10   5000      以下空白   :   :   :    :  23行目     C集計            5000  24行目     総計             9650 となってしまいます。上記の参考データならば 8行目から22行目までが無駄に空白ができてしまいます。 これを、8行目にC集計を表示させることはできるのでしょうか? 集計後の表をコピーして他シートに貼り付けるマクロを組んでいます。 データによっては、1つの会社の集計が表示されません。宜しくお願いいたします。上記を満たすマクロでも結構です。

  • ExcelのVBAで、グループ化以外を集計したい

    Excelで各シートのデータを集計する際に、 不要なデータを各シート内でグループ化して隠しています。 最終的にグループ化されていない各シートのデータを別のシートで集計したいのですが、 グループ化後に表示行全体を選択し、コピーペーストすると、 グループ化されているデータもコピーされてしまいます。 これをマクロを使って、表示されているデータのみ集計できるようにしたいのですが、 可能でしょうか? マクロの記録を使用しながら、コード書けるレベルで、 そもそも、グループ化のデータもついてきてしまうので、マクロの記録もできません。 ご教授お願いいたします。