• ベストアンサー

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

MackyNo1の回答

  • ベストアンサー
  • 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
質問者

お礼

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

関連する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を使っています。 任意に選んだ複数のワークシートを横に並べ、連結させたいのです。 ちなみに、選ぶワークシートの行と列は共通です。