• ベストアンサー

Excel2003でのシート結合について

Excel2003でのシート結合(共通項目による)についてご教示下さい。 二つのシート(sheet1とsheet2)にそれぞれデータが有ります。 二つのシートの共通項目列(形名と製番)でsheet1とsheet2を結合させ、結果をsheet3に表示させたいのです。 例)sheet1 形名、製番、納入日、納入先 →16列項目が有ります X1 01 100101 東京 ↓ 以下、3000行有ります sheet2 形名、製番、検査日、検査完了 →25列項目有ります X1 01 100102 済 ↓ 以下、2000行有ります sheet3 形名、製番、納入日、納入先 →16列、検査日、検査完了 →25列 X1 01 100101 東京 ・・・・・ 100102 済 尚、sheet1に有ってsheet2に無いデータも有ります。 この場合は、sheet3には、sheet1範囲の情報のみ表示される様にしたいです。 (逆の場合も有ります。) 皆様のご支援宜しくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

きわめて複雑な配列数式を駆使すればA列とB列の項目を基準にデータを合体することができますが、元リストのサイズと表示データ数を考慮すると、実用的な方法ではありません。 このようなケースでは、エクセルの一般機能であるフィルタオプションの設定や補助列を使った数式で処理することをお勧めします。 私なら、集計対象となる2つのシートのA列とB列のデータだけを1つのシートにまとめたデータを作成しておき、このデータで「データ」「フィルタ」「フィルタオプションの設定」で「重複するデータは無視する」にチェックを入れてOKし、重複のないデータを作成し、この範囲をSheet3のA1セルに貼り付けます。 次にSheet1およびSheet2のA列に補助列を挿入し、「=B2&C2」のような数式を入力します。 そしてSheet3のC2セルに以下のような数式を入力して右方向および下方向にオートフィルします。 =IF(ISNA(VLOOKUP($A2&$B2,Sheet1!$A:$Q,COLUMN(D2),0)),"",VLOOKUP($A2&$B2,Sheet1!$A:$Q,COLUMN(D2),0)) Sheet2を参照するQ2セルにも上記と同様の参照範囲を変更した数式を入力します。

jego2
質問者

お礼

ご報告が遅くなり申し訳ございません。 ご教示頂いた内容で解決しました。 特に予めフィルタオプションの設定で重複のないデータを作成する点は 精度向上にもつながり大変助かりました。 この度はご支援頂き、誠に有難うございました。

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

その他の回答 (2)

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

シート1では1行目に項目名があり、2行目から下方にデータがあるとします。 16列のP列まで入力されているとします。そこで作業列としてR2セルには次の式を入力して下方にオートフィルドラッグします。 =A2&B2 S2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(R2="","",MAX(S$1:S1)+1) シート2では作業列としてAA2セルに次の式を入力して下方にオートフィルドラッグします。 =A2&B2 AB1セルには次の式を入力します。 =MAX(Sheet1!S:S) AB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AA2="","",IF(COUNTIF(Sheet1!R:R,AA2)>0,"",MAX(AB$1:AB1)+1)) まとめの表のシート3ですが同じく1行目には項目名を入力し、A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(ROW(A1)<=MAX(Sheet1!$S:$S),IF(COLUMN(A1)<=16,INDEX(Sheet1!$A:$P,MATCH(ROW(A1),Sheet1!$S:$S,0),COLUMN(A1)),IF(AND(COLUMN(A1)>=17,COUNTIF(Sheet2!$AA:$AA,$A2&$B2)>0),INDEX(Sheet2!$A:$Y,MATCH($A2&$B2,Sheet2!$AA:$AA,0),COLUMN(A1)-14),"")),IF(ROW(A1)<=MAX(Sheet2!$AB:$AB), IF(COLUMN(A1)<=2,INDEX(Sheet2!$A:$Y,MATCH(ROW(A1),Sheet2!$AB:$AB,0),COLUMN(A1)),IF(AND(COLUMN(A1)>2,COLUMN(A1)<17),"",INDEX(Sheet2!$A:$Y,MATCH(ROW(A1),Sheet2!$AB:$AB,0),COLUMN(A1)-14))),""))

jego2
質問者

お礼

ご報告が遅くなり申し訳ございません。 ご教示頂いた内容で解決しました。 この度はご支援頂き、誠に有難うございました。

jego2
質問者

補足

早速のご回答ありがとうございました。 出先の為、データが無く検証出来てませんが、サンプルを作成してみたところ こちらのイメージ通りの結果が表示されました。 明日改めてご報告させて頂きます。 先ずはご回答に対し御礼申し上げます。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

Sheet3の1行目にまとめたい項目を入力しておき、A2セルに以下の数式を入力し、右方向および下方向にオートフィルします。 =IF(COUNTA(Sheet1!$A$2:$A$100)>ROW(A1),IF(ISNUMBER(MATCH(A$1,Sheet1!$1:$1,0)),INDEX(Sheet1!$A$2:$I$100,ROW(A1),MATCH(A$1,Sheet1!$1:$1,0)),""),IF(ISNUMBER(MATCH(A$1,Sheet2!$1:$1,0)),INDEX(Sheet2!$A$2:$I$100,ROW(A1)-9,MATCH(A$1,Sheet2!$1:$1,0)),"")) Sheet2に項目名がありデータ数を超える行には0と表示されますので、シートのオプションでセロ値を表示しない設定などにしてください。 されに複雑な数式となるため、今回は提示しませんでしたが、ゼロの表示は、もちろん数式だけで表示しないように設定できます(2つのシートのデータのカウント数が超える場合は空白文字列を返す数式にしてください)。

jego2
質問者

補足

早速のご回答ありがとうございました。 私の言葉足らずで誠に申し訳ございません。 教えて頂いた内容を実行したところ、sheet1とsheet2の内容が各々sheet3に表示されました。 私の希望としましては、sheet1とsheet2に有る、列A(形名)と列B(製番)でデータのマッチングを行い、sheet1の14項目とsheet2の23項目のデータを横一直線に表示させたかったのです。 sheet3の表示イメージ 形名、製番、sheet1の14項目、sheet2の23項目 X1   01  14項目のデータ  23項目のデータ 宜しければ再度ご教示頂けませんでしょうか。 何卒宜しくお願い申し上げます。

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

関連するQ&A

  • エクセルの各シートをアクセスで結合するには

    お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 空シートはありませんが、空白のセルはあります。 よろしくお願いします。

  • エクセルの各シートをアクセスで縦に結合するには

    お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 よろしくお願いします。

  • 他シートのデータを参照させたい(excel2007

    excel2007において、他のシートのデータを参照させる方法についてどなたか教えてください。 =sheet1!a1 のように入力して他のシートのデータを表示させる方法は使っているのですが、複数のセルのデータを参照させるのに手間取っています。 たとえばsheet1にある5行5列(25セル)のデータをsheet2の5行5列(25セル)に表示させたいときは、25個のセルすべてに上記のように入力すればいいのですが、参照させたい元の25セルのどこかにセルの結合が使われていると、sheet2においても同じように結合させなければsheet1と同じ表示になりません。 sheet1でセルの結合が使われたときはsheet2においても同じように「セルの結合も自動で参照させる(連動させる)」ということは可能なのでしょうか? 詳しい方いらっしゃいましたら、よろしくお願いいたします。

  • Excel関数

    五年計画で事業を進めています。 一ヶ月毎の進捗率を出したいです。 Sheet1に A列(項目) あ い う え お B列(数量) 10 20 30 40 50 C列(完了日) 2014/07/15 2014/07/22 2014/08/05 2014/08/06 2014/07/31 Sheet2に A列1行に 7月進捗の(10+20+50)/全体数*100 答え A列2行に 8月進捗の(30+40)/全体数*100 答え A列3行に 9月未定? 答え A列4行に 10月未定? 答え と進めたいがパーセントへの計算式は別として、Sheet2のA列1行に条件としてSheet1のC列7月分に完了した分だけを拾い合計しなさい!とし、同じくSheet2のA列2行にSheet1の8月分だけを拾い合計としたい。 現在SUMIFで考えていますが、範囲はSheet1のA列で合計範囲はSheet1のB列で検索条件はSheet1のC列ですが文字(みかん)や記号(★)なら出来ますが日付 2014/08/06とか言った様な場合がどの様にしたらわかりません。 この用紙だと列を横書きになってますがあくまで標準のExcelのシートで考えて下さい。 宜しくお願いします

  • excel2000で、結合したセルにコピーをすると・・

    シートがA、Bとあり、AのシートのA列にデータが入力されています。 このデータをBのシートのA列に写したいのですが、BのシートのA列は2行づつセルが結合されており、A1,A3、A5・・・となっているのです。 そこで、シートBのA1に「=A!A1」と入力して、これをA3,A5・・にコピーしても、「=A!A3」、「=A!A5」・・と、シートAのA2,A4・・といった偶数行が反映されないのですが、何か対処法はあるのでしょうか?

  • 結合したセルを1つのセルにコピーしたい

    1行目のABCDE列を結合し「あいうえお」と入力します。 同じく1行目のFGHIJ列を結合し「かきくけこ」、KLMNO列を結合し「さしすせそ」と入力します。 これらをコピーして別のシートに貼り付けたいです。 別のシートの1行目のA列に「あいうおえ」B列に「かきくけこ」C列に「さしすせそ」と入力したいのですが、どうすればいいのでしょう。 エクセル2007を使用しています。 よろしくおねがいします。

  • VBA シート間の単一セルから結合セルへのコピー

    マクロについてご教授をお願いします。 ◆実現したい事 2枚のシート(XとY)が存在します。 コピー元:Xシート          コピー先:Yシート    B列                    B列 1行 商品1   コピペ→     1~3行結合 商品1  2行 商品2   コピペ→     4~5行結合 商品2 3行 商品3   コピペ→     6~8行結合 商品3   ・                    ・   ・                    ・   ・                    ・  最終行                  最終行 XシートのB列に1行ずつ、商品名が羅列されています。 YシートのB列には、3行結合(B1:B3)、(B4:B6)、(B7:B9)・・・空白セルがあります。 Xシートの商品名をYシートの結合セルにマクロを使って処理したいです。 ◆試した事 (1)結合を解除し、XからYへ範囲コピーしたが、YのB列に再び、商品毎に2行追加し、結合  2行追加する方法がわからず断念 (2).valueでXシートB1 = YシートB1を試みるができない ◆ここで詰まってます>< Dim X As Worksheet Dim Y As Worksheet Dim 最終行1 As Long Dim 最終行2 As Long Dim cp1 As Long・・・・Yシート行変数 Dim cp2 As Long・・・・Xシート行変数 Set X = Worksheets(1) Set Y = Worksheets(2) 最終行1 = Cells(Rows.Count, 2).End(xlDown).row 最終行2 = Cells(Rows.Count, 2).End(xlDown).row For cp1 = 1 To 最終行1 For cp2 = 1 To 最終行2 Step 3 sh1.Cells(cp1, 2).Copy Destination:= sh2.Cells(cp2, 2) Next Next みたいな感じにできればと、Copyを.valueなどにしてみたりと試してみましたが、 なかなかうまくいかず、3日くらい悩んでいます。 シンプルにやりたいのですが、なにか良い方法などあれば、 ご教授のほどお願い致します><

  • Excel:条件付き文字列の結合方法

    Excel本当の初心者です。ヘルプなど使って、自分なりにがんばって 考えたのですが、やりたいことがどうしてもできず、お力を貸して ください! やりたいのは、下記の通りです。 Sheet1のような表があります。カテゴリー毎にID が 付いていて、表は20,000行位あります。 同じID(カテゴリー)のものは、C列の商品名を”、”で 結合して、1行にまとめたいのです。 Sheet2のような結果を得たいのです。 Sheet1 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご 12345    くだもの   みかん 12345    くだもの   イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ 23456    お菓子    お煎餅 Sheet2 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご、みかん、イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ、お煎餅 Sheet1のA列とB列を「フィルタの重複レコードを無視する」を したものをSheet2のA列とB列に貼り付けて、ISNUMBERとFIND を使ってと思ったのですが、Sheet2のC列で商品名の結合を"、 " で結合しようと思ったのですが、重複IDがない物もあれば、 10個も20個もあるものもあるので、CONCATENATEではできなくて... どんな関数を使えば良いのでしょうか? それと、事前にSheet1にフィルタをかけてSheet2に貼り付けたり ぜずに、Sheet2のA列とB列とも関数でやる事はできるのでしょうか? あともうひとつ、教えてただきたい事があります。 いつも一番上の行に式を入れて、下にドラッグすることで 下の行にコピーしているのですが、20,000行もあるので この方法だと大変なので、行数をしていして、コピーする 方法とかあれば教えてください! 一度にいくつもすみませんが、教えてくださると 嬉しいです。

  • エクセルでシートの(結合)マージ

    はじめて質問をさせていただきます。 エクセルのシートを(結合)マージをしたいと思います。 たとえばシート1とシート2共にあるデータ、シート1のみのデータ、シート2のみのデータを区別したいのですが、そしてなおかつできればその結果をシート3に表示する。ということができればと思います。 たとえば、シート1・2(A列に比較項目 B列以降は他の項目)とし シート1           シート2 A123,12345,2345       A123,12345,2345 A234,23456,3456      A345,34567,4567 A345,34567,4567       A456,45678,5678 これをシート3に A123,12345,2345,A123,12345,2345 (両方) A234,23456,3456, , , (シート1のみ) A345,34567,4567,A345,34567,4567 (両方) , , ,A456,45678,5678 (シート2のみ) のようにしたいと思います。皆様のお知恵をお借りしたいと思います。 よろしくお願いいたします。

  • Excel2010での複数シートの横並べ方法

    Excel2010を使っています。 任意に選んだ複数のワークシートを横に並べ、連結させたいのです。 ちなみに、選ぶワークシートの行と列は共通です。

このQ&Aのポイント
  • 最後の印刷で廃インク吸収パッドの吸収量が限界に達した場合、エプソンの修理窓口に連絡する方法を教えてください。
  • 印刷した最後に廃インク吸収パッドの吸収量が限界に達し、エプソンの修理窓口に連絡する必要があるかどうかを教えてください。
  • 印刷した最後に廃インク吸収パッドの吸収量が限界に達し、エプソンの修理窓口に交換を依頼する方法について教えてください。
回答を見る

専門家に質問してみよう