• ベストアンサー

項目が違う複数のシートを1つのシートにまとめたい

項目が同じである2つのシートと違う項目の1つのシートの必要項目だけを1つのシートに合わせたい。 A・Bのシートの項目 【項目】 番号 販売先 金額 コード S 日付 (実際は20項目あります)      09912 新潟  ¥200  Q1  カ 3/3 Cのシートの項目 【項目】場所 番号 担当 部門 金額 予定(実際は20項目あります)     東京 21  安藤 営業 ¥100  1/1 上記3つのシートを 【項目】場所 番号 担当 部門 S 金額 (実際は20項目以上になります) のようにしたいのです。 だたし、A・Bシートの番号が同じであれば金額は合計額とし、Cシートに同じ番号があった場合、2行に分けて表示ができればと思っています。VLOOKUPや統合等を試したのですが、適切ではないようで上手くいきません。 可能な方法がありましたら、どうぞご教授ねがいます。

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

  • ベストアンサー
回答No.3

回答1です。 >こちらの方法ですと割りと簡単でしたが、シートCに合わせることができないという状態です。(汗) 回答1の(2)の並べ替えを、以下の手順でしてみてください。 (1)シートA2、シートB2の1行目に1行挿入して作業行を追加します。 (2)追加した行に次の式をフィルします。これで2行目の見出しが、シートCの何列目に当たるかが判ります。シートCにない列は999になります。    =IF(COUNTIF(シートC!$B$1:$Z$1,B2)=0,999,MATCH(B2,シートC!$B$1:$Z$1,0))    *セル範囲は実情に合わせてください。 (3)全体を選択して「データ」-「並べ替え」ー「オプション」ボタンー方向「列単位」を選択で、列の並べ替えをします。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/sort.html#gyou (4)999の列を削除し、さらに作業行の1行目を削除します。 以上です。 いきなり複雑な式で処理するのもひとつの手ではありますが、ご自身のためには、まずはExcelの豊富な機能を活用できるようになることが大切かと思います。

その他の回答 (3)

回答No.4

回答3です。補足です。 回答3ではシートCの順番に並びますが、シートCだけにある列がまだ挿入されていませんでした。それを挿入する必要があります。 回答3の(4)の前に、たとえば1行目が1、3、4、・・・とあったら1と3の間に1列を挿入するという作業が必要です。 必要な列を挿入したら、シートCから見出し行をコピー/貼り付けて完了です。

florflor18
質問者

お礼

再度、ありがとうございます。 上記の方法を会社でやってみます。 お力をお貸しいただいて、本当にありがとうございましたm(__)m

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

Aシートはシート1にBシートはシート2にCシートはシート3として述べます。 まとめのシートはシート4としますがシート1とシート2の金額は合計してシート3の金額は2行にして表示させるとしていますが、エクセルの操作上は列を分けて表示させることがより効率的です。 以下にはシート4での操作を述べます。 ここではまとめに使う番号はB列にシート1とシート2の金額はF列に、シート3の金額はG列に表示させることにします。 初めに検索のもととなる番号をB2セルから下方にシート1での番号のデータをコピーして貼り付け、その下にはシート2および3の番号のデータを貼り付けます。その後にエクセル2007でしたらB列を選択したのちに「データ」タブの「重複の削除」をクリックして重複の電話番号をなくした状態の番号を表示させます。 次にA1セルには場所と入力します。A2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ISERROR(INDEX(Sheet3!A:A,MATCH(B2,Sheet3!B:B,0))),"",INDEX(Sheet3!A:A,MATCH(B2,Sheet3!B:B,0))) C1セルには担当、D1セルには部門、E1セルにはSなどと項目名を入力します。その後にC2セルには次の式を入力してE2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$1:$1,C$1)=0,"",IF(COUNTIF(INDEX(Sheet1!$A:$AX,1,MATCH($B$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$AX,10000,MATCH($B$1,Sheet1!$1:$1,0)),$B2)=0,"",INDEX(Sheet1!$A:$AX,MATCH($B2,INDEX(Sheet1!$A:$AX,1,MATCH($B$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$AX,10000,MATCH($B$1,Sheet1!$1:$1,0)),0),MATCH(C$1,Sheet1!$1:$1,0))))&IF(COUNTIF(Sheet2!$1:$1,C$1)=0,"",IF(COUNTIF(INDEX(Sheet2!$A:$AX,1,MATCH($B$1,Sheet2!$1:$1,0)):INDEX(Sheet2!$A:$AX,10000,MATCH($B$1,Sheet2!$1:$1,0)),$B2)=0,"",INDEX(Sheet2!$A:$AX,MATCH($B2,INDEX(Sheet2!$A:$AX,1,MATCH($B$1,Sheet2!$1:$1,0)):INDEX(Sheet2!$A:$AX,10000,MATCH($B$1,Sheet2!$1:$1,0)),0),MATCH(C$1,Sheet2!$1:$1,0))))&IF(COUNTIF(Sheet3!$1:$1,C$1)=0,"",IF(COUNTIF(INDEX(Sheet3!$A:$AX,1,MATCH($B$1,Sheet3!$1:$1,0)):INDEX(Sheet3!$A:$AX,10000,MATCH($B$1,Sheet3!$1:$1,0)),$B2)=0,"",INDEX(Sheet3!$A:$AX,MATCH($B2,INDEX(Sheet3!$A:$AX,1,MATCH($B$1,Sheet3!$1:$1,0)):INDEX(Sheet3!$A:$AX,10000,MATCH($B$1,Sheet3!$1:$1,0)),0),MATCH(C$1,Sheet3!$1:$1,0)))) F1セルにはA+B合計額とでも入力し、F2セルにが次の式を入力したのちに下方にもオートフィルドラッグします。 =IF(B2="","",(IF(COUNTIF(Sheet1!$1:$1,"金額")=0,0,IF(COUNTIF(INDEX(Sheet1!$A:$AX,1,MATCH($B$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$AX,10000,MATCH($B$1,Sheet1!$1:$1,0)),$B2)=0,0,INDEX(Sheet1!$A:$AX,MATCH($B2,INDEX(Sheet1!$A:$AX,1,MATCH($B$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$AX,10000,MATCH($B$1,Sheet1!$1:$1,0)),0),MATCH("金額",Sheet1!$1:$1,0))))+IF(COUNTIF(Sheet2!$1:$1,"金額")=0,0,IF(COUNTIF(INDEX(Sheet2!$A:$AX,1,MATCH($B$1,Sheet2!$1:$1,0)):INDEX(Sheet2!$A:$AX,10000,MATCH($B$1,Sheet2!$1:$1,0)),$B2)=0,0,INDEX(Sheet2!$A:$AX,MATCH($B2,INDEX(Sheet2!$A:$AX,1,MATCH($B$1,Sheet2!$1:$1,0)):INDEX(Sheet2!$A:$AX,10000,MATCH($B$1,Sheet2!$1:$1,0)),0),MATCH("金額",Sheet2!$1:$1,0)))))) G1セルにはC金額とでも入力し、G2セルには次の式を入力したのち下方にもオートフィルドラッグします。 =IF(B2="","",(IF(COUNTIF(Sheet3!$1:$1,"金額")=0,"",IF(COUNTIF(INDEX(Sheet3!$A:$AX,1,MATCH($B$1,Sheet3!$1:$1,0)):INDEX(Sheet3!$A:$AX,10000,MATCH($B$1,Sheet3!$1:$1,0)),$B2)=0,0,INDEX(Sheet3!$A:$AX,MATCH($B2,INDEX(Sheet3!$A:$AX,1,MATCH($B$1,Sheet3!$1:$1,0)):INDEX(Sheet3!$A:$AX,10000,MATCH($B$1,Sheet3!$1:$1,0)),0),MATCH("金額",Sheet3!$1:$1,0)))))) これらの式は金額の集計を列が変われば2行目に入力して使用すればよく、C2セルに入力した式は項目を変えた他の列でも、その列の項目に一致する値をシート1からシー3の間で探しデータを引き出してきますので、例で示したようにE列までに制限して使うことはありません。

florflor18
質問者

お礼

回答をいただきまして、ありがとうございます! 関数の多いことに驚きましたが、丁寧な案内によりチャレンジしてみました。なかなか、上手くいきません。データを引っ張ってこれないようです。また、「関数が多すぎる」ようなエラーメッセージが表れることも。私のやり方がまずいようです!! (教えていただいた関数をコピーしたいのですが、会社ではこちらのサイトを開くことができず、手入力でおこなっています・・(汗)) 自宅パソコンに不具合があり、立ち上げてから数分すると停止してしまう事態が数日続いてしまい、御礼が遅くなってしまいました。 申し訳ありませんでした。 上記の教えをもう一度おちついて行ってみます。 ありがとうございました m(__)m また、機会がありましたらどうぞ宜しくお願い致します。

回答No.1

何段階かの手順を踏まないと難しいでしょう。 (1)シートAとシートBをシートコピーしてシートA2、シートB2を用意します。 (2)シートA2、シートB2のフォーマットを、列の挿入、並べ替えなどをしてシートCに合わせます。 (3)シートA2のデータの下にシートB2のデータコピーして追加ます。(シートB2はここで不要) (3)シートA2に「金額合計」列を追加します。    B列に番号、E列に金額があるとして、式「=SUMIF(B:B,B2,E:E)」をその列に入力します。    これで番号ごとの合計が得られます。 (4)「金額合計」のデータをコピーして「金額」に「値貼り付け」します。「金額合計」は削除します。 (5)シートA2を番号で並べ替えます。    次に「データ」ー「フィルタ」ー「フィルタオプション」で「重複したデータは無視する」をチェックしてフィルタします。 (6)フィルタの結果をシートCへ貼り付けます。 以上。 一例です。もっとうまいやり方があるかもしれません。

florflor18
質問者

お礼

ありがとうございます! 幾つかの段階を踏まないといけないのはわかっていたのですが、まず何からして良いか道筋が立てられませんでした。 こちらの方法ですと割りと簡単でしたが、シートCに合わせることができないという状態です。(汗) こちらのお教えを踏まえ、もう少し頑張ってみます。 ご協力いただきまして、ありがとうございました!! また、機会がありましたらどうぞ宜しくお願い致しますm(__)m

関連するQ&A

  • 複数シートのデータをまとめたい

    複数のシートを下の例のように一つにまとめたいのですが、どうすればよいでしょうか? 注)見づらい例で申し訳ありません。 --------------------------------(例)---------------------------- [sheet1]と[sheet2]のデータを[sheet3]に出力させたい。 ※例では[sheet1][sheet2]共,5行目までしかデータがありませんが、  これより少ない時も多い時もあります。 [sheet1] (A1):担当者A (A2):項目A (B2):項目B (C2):項目C (D2):項目D (A3):テキスト1 (B3):15 (C3):2 (D3):テキスト4 (A4):テキスト2 (B4):3 (C4):1 (D4):テキスト5 (A5):テキスト3 (B5):4 (C5):2 (D5):テキスト6 [sheet2] (A1):担当者B (A2):項目A (B2):項目B (C2):項目C (D2):項目D (A3):テキスト7 (B3):5 (C3):3 (D3):テキスト10 (A4):テキスト8 (B4):7 (C4):2 (D4):テキスト11 (A5):テキスト9 (B5):9 (C5):4 (D5):テキスト12 [sheet3] (A2):項目A(B2):項目B(C2):項目C(D2):項目D(E2):担当者 (A3):テキスト1(B3):15(C3):2(D3):テキスト4(E3):担当者A (A4):テキスト2(B4):3(C4):1(D4):テキスト5(E4):担当者A (A5):テキスト3(B5):4(C5):2(D5):テキスト6(E5):担当者A (A6):テキスト7(B6):5(C6):3(D6):テキスト10(E6):担当者B (A7):テキスト8(B7):7(C7):2(D7):テキスト11(E7):担当者B (A8):テキスト9(B8):9(C8):4(D8):テキスト12(E8):担当者B ----------------------------------------------------------------

  • 3つのシートから適合する項目を抽出したい

    エクセル関数にて何かいい方法があればお教えください。 シート名"商品名A"、シート名"商品名B"シート名"商品名C"と3つのシートがあります。 それぞれのシートにはA列からW列まで統一した項目が入っているのですが、 商品Aを購入した顧客が商品Bや商品Cを購入した場合で、今まではそれぞれの商品の顧客番号を基準にVlookupでAとBとCを照らし合わせ、 A/B/C、A/B、A/C、B/C、Aのみ、Bのみ、Cのみの購入と分けて更に、担当IDをCOUNTIFを使って集計していました。 現状だと何回も同じ作業を繰り返していてとても面倒なんです。 もっと効率の良い関数式はありますでしょうか? 最終的には別のシートの列にそれぞれの商品購入項目(A/B/C、A/B・・・)を、行に営業IDを入れて集計をしたいと思っております。 またはマクロを組んだ方が良いのでしょうか?マクロはまだ初心者で余り自信が無いのですが。。。 どなたかお知恵を拝借頂けないでしょうか。よろしくお願いいたします。

  • データ転記。うまく転記できないシートがあります。

    エクセルのデータ転記について助けてください。 現在 エクセルで職場で使用する現金出納帳を作成中です。完成間近なのにつまずいてしまいました。 作成にもう長い時間かかっるので今週中になんとか仕上げたいのです。 (職場での周りの目がこわくって・・・) どうかどうかよろしくおねがいします。 *各シートの説明 【シート1(元帳)】は記入用シート(1年間の経費等の入力をします) A1は表題 2行目はタイトル行で B列:月日、C列:曜日、:D列:経費部門コード(以下部C)、E列:経費部門名(D列の部C入力時に他シートにあるデータベースからLOOKUPで抽出して表示するようにしてます) F、G列は手入力用の内訳や備考の列、H列:収入金額、I列:支払金額、J列:差引残高。(I・J列は転記必要なしです) データはB3(日付)から入力します。 データ表の範囲はとりあえず100行目まで(A1からJ100) 【シート2~シート16(シート名はD列の経費部門コード番号です)】 こちらが転記先シートです。 A1に部門コード、B2に部門コード名(A1のコードでデータベースより抽出)2行目はB列:月日、C列:曜日、D、E列:内訳、備考、F:支払金額 【シート17(経費部門コードのデータベース)】 部門番号と部門名を表にして 元帳で入力の際 ここからひっぱってくるようになっています。 番号は15種類(経理上不規則な番号):1・2・4・5・6・7・8・9・10・12・20・21・22・仕・給(これをシート名にしてます) *希望する完成仕様 元帳(シート1)に入力したデータが同時に部門C別シート(15種類)に必要な項目だけ転記される。必要な項目は上記のシート説明参照。 *現在の作成状況 ・元帳のシート A3に'=COUNTIF($D$3:D3,D3)&D3 以下 A列はA3をコピー ・15枚の部門番号のシート B3(転記初期行)に'=IF(ISERROR(VLOOKUP(ROW(元帳!A1)&$A$1,元帳!$A$1:$I$100,2,0)),"",VLOOKUP(ROW(元帳!A1)&$A$1,元帳!$A$1:$I$100,2,0)) C3,D3,E3,F3列はB3をコピーしLOOKUPの列番号を変更 *現在の状況と問題点 シート4・5・6・7・8・9・10・12・20・21・22はきちんと転記する。 シート1(部門C:1)は部門C:1と部門C:21のデータが転記されてしまう シート2 (部門C:2)は部門C:2と部門C:12と部門C:22のデータが転記されてしまう。 この2つのシートは 下1桁でひっぱってきてしまってるのは分かるのですが改善方法が分かりません。 どうかこの2シートがきちんと動く数式を教えていただけるでしょうか? 文章力不足のため 質問の理解にさぞ悩まれるでしょうがどうぞよろしくお願いします。 補足:01 02 04と 二桁でもしてみましたが反応は同じ。 よく分からなくて セルの表示変えても値は1・2・4になってしまうんです・・。 結局よく分かりませんでした。

  • 複数のシートに跨ってVLOOKUPするには?

    複数のシートに跨っているデータをVLOOKUPで参照しようとしています。 1つめのシートには コード番号 シート名 の2つのカラムがあり、コード番号ごとに どのシートを参照すればよいかわかるようになっています。 参照されるほうのシートには コード番号 値 の2つのカラムがあります。 このシートが数十存在しますが、1つのシートにまとめることは出来ません。 1つ目のシート上で、 =VLOOKUP(A1,CONCATENATE(B1,"!A:B"),2,false) などと試してみたのですが、うまくいかないようです。 何か良い方法はないでしょうか。

  • 複数シートの特定セルを1シートにまとめるには?

    ・・・E     5  名称 ・ ・ 7  住所 10 担当者 ・ ・ のような形式で顧客シートとして複数シート存在してます。 シート名称は、手動で名称に併せて変更してしまっています。 今後もシートコピーで増えていく予定です。 このシートたちを「まとめ」のシートにまとめたいのですが (シート名は仮にAから始まるとし)   A      B      C         1 シートAの名称  シートAの住所  シートAの担当者 ・・・・・ 2 シートBの名称  シートBの住所  シートBの担当者 ・・・・・ 3 シートCの名称  シートCの住所  シートCの担当者 ・・・・・ こんな感じです。 ヨコ1列にまとめたいのです。 まとめたい項目は元の顧客シートで規則性をもったセルに 入力されている訳ではありませんが、7項目くらいで増える事はありません。 なので、元のセル番号を指定してまとめのシートに 貼付けをするイメージを持っているのですが、 過去のものではこの部分がわからず・・ 他のところからみつけたのでは r.Value = .Range("E5").Value r.Offset(, 1).Value = .Range("E7").Value r.Offset(, 2).Value = .Range("E10").Value がこの部分に値するのかと思いましたが、 そうするとその前後が分からなくなってしまい・・ 説明が下手ですいません。 まとめ方を教えてください。

  • Excel:複数シートの集計について教えて下さい!

    複数シートの集計について、行き詰ってしまったのでどなたかアドバイスをお願いします。 シートは1年度分の月ごと(契約日ベース)(4月~3月)に分かれています。 データは下記のようになっています。 種別 | 受付番号 | 注文番号 | 地域 | 契約日 | 金額  | 担当者 -------------------------------------------------------------- A | 1111 | A245 | 関西 | 4/1 | 70,000 | SA -------------------------------------------------------------- A | 1122 | A873 | 関西 | 4/15 | 85,000 | FU 以下続く。 担当者は10人未満です。1シートに同じ担当者が何回か登場しますが、毎月同じメンバーが登場するわけではありません(例:4月はAさん・Bさん・Cさん、5月はCさん・Dさん等)。 集計に使いたい項目は、(1)契約日(2)担当者(3)金額です。 担当者ごとに、月合計を集計し、かつ3ヶ月ごとに合計金額を出し、最後の列には総合計を入れたいです。 担当者 | 4月 | 5月 | 6月 | 1Q合計 | 7月 | 8月 | …… | 19年度合計 ピボットテーブルの「複数のシート範囲」を選択してやってみたのですが、うまくレイアウトが組めませんでした。 列を一部、担当者・契約日・金額の順に入れ替えて、この3行だけで複数シートのピボットテーブルを試してみたのですが、どうもうまくいきません。 どなたか助けてください! ピボットテーブルじゃなくてもOKです。ただマクロはできません。

  • excel 別シートから複数項目を取得

    こんばんは。エクセルについて質問があります。 今、エクセルで同じ構造で中身の違うデータベースの様なシートを数枚作り、 そこから参照して、別の入力シートにそのデータを引っ張って来るということをしたいです。 調べてみた感じVLOOKUP関数などを使うのかなと思うのですが、 どうもうまいこといきません。 DBのような扱いをしているデータシートの構造は 【データシート】 A1(クラス名)列| B1(番号) 列 | C1(名前:漢字) 列 | D1(名前:かな) 列 | ------------------------------------------------------------------- A2   1-1 |  B2 1番 | C2 鈴木 太郎   | D2 すずき たろう   | のようなデータの入れ方をしており、クラスは1-7まである感じで、 B1の列はA1列のクラスの人数分が連番になっています。 なので、番号は重複してる部分が多いです。 これが複数枚シートあるといった具合です。 データを反映させたいシートも前4列は同じ様な構造をしています。 これにあと複数列足した感じになってます。 【反映させたいシート】 A1(クラス名)列| B1(番号) 列 | C1(名前:漢字) 列 | D1(名前:かな) 列 | E1 別項目 |… -------------------------------------------------------------------------------- A2  3-7  |  B2 2 | C2 田中 次郎   | D2 たなか じろう   | ×× |… ここで名前列に名前(漢字、もしくはかな)を入れるか、 もしくはクラス名+番号ですぐさま該当シートの特定し、 合致するE列以前の残りのデータを全て取得してくる。 反映させたシートのE列などに入れたデータを 今度はデータシートへとリンクさせるという風な プログラムを組みたいです。 こういった具合のエクセルシートを作成したいのですが、 どのようにしたら良いでしょうか? プログラムの様にIF文などを使用する感じになるのでしょうか? それともデータのシートに別でIDなどユニークな値を各々の データに割り振らないとダメでしょうか? また参考として知りたいのですが、 1行に引っ張りたくないデータが多数あっても行単位で3列の分だけ取得して、 1行にある3列分のデータを同じ1行3列に反映させることは可能でしょうか? 説明が下手で意味が解り辛い所もあるかもしれませんが、 回答よろしくお願いします。

  • プルダウンリストで選ぶと、複数の項目(部品)が別シートに表示する方法を教えてください。

    業務で使うシートを作りたいのですが、下記の内容についてご教示ください。 ある機械の整備項目(5年目整備、10年目整備、その他)をプルダウンリストにして、どれか選択すると、別シートに記載した選択した整備項目に必要な複数の部品が表示できるようにしたいのですが、 具体的には A2をプルダウンリストにし、 別表を下記のように作成し、 B7~B11=5年目整備    C7~C11=(軸受などの各部品) B12~B17=10年目整備   C12~C17=(モータなどの部品) B18~B19=その他     C18~C19=(その他部品) 適当な各セルに必要な部品が表示できるようにしたいので、 A3~A10=VLOOKUP(A2,B7:C19,2)としたのですが、うまくいきません。 (1)どこがおかしいか、 (2)別の良い方法はないか教示願います。

  • Excel 複数の項目合致するデータを抽出したい

    是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

専門家に質問してみよう