• ベストアンサー

2つの表の合成

Excel2003です。5列目まで同項目で6列目以降の項目が異なる2つの表を、5列目をキーにそれぞれ並び替えた時、A表にあってB表に無い行があります。逆はありません。このA表にあってB表にない行を、B表に追加する方法が知りたいです。追加行は6列目以降は空白でかまいません。統合かと思いましたが、2つの表から参照するようで表として作成する事ではないようです。 どうぞ宜しくご教示下さい。

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

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

ごめんなさい。 基本的なミスをしていました。 Sheet1で表とは関係のない、例えばK列を作業列としてK2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",IF(COUNTIF(E2,Sheet2!E:E)=0,MAX(E$1:E1)+1,"")) これでSheet1にあってSheet2に無い行に上から番号が付きます。 Sheet2ではデータが最後の行の次の行にあるA列のセルに次の式を入力して右横方向(最大でF列まで)にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$F:$F,ROW(A1))=0,"",INDEX(Sheet1!$A:$J,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1))) この答えの中でK2セルへの入力の式ですが次のように訂正します。 =IF(E2="","",IF(COUNTIF(Sheet2!E:E,E2)=0,MAX(E$1:E1)+1,"")) COUNTIF関数で引数の使え方が間違っていました。

sapporolove
質問者

お礼

有難う御座いました。 読み出しは出来ました。 追記の式に付いては未だ理解出来ていません。時間を掛けて取り組みます。取りあえず読み出し、セレクトは出来ましたので追加は手作業で実行出来ました。 お世話になりました。

その他の回答 (2)

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

B表がシート1にあるとのことでしたら、例えばB表がG列からK列までにあるとしたらGからK列までを選択し(G列番号のところで左クリックしてK列までドラッグすればよいでしょう。)、右クリックをしてその中から「コピー」を選びます。 シート2に移ってA1セルをアクティブ状態にして右クリックし「貼り付け」をすればよいでしょう。

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

例えばA表がSheet1にあって、B表がSheet2にあるとします。 それぞれのシートでは項目が1行目にあって2行目以降にデータがあるとします。 Sheet1で表とは関係のない、例えばK列を作業列としてK2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",IF(COUNTIF(E2,Sheet2!E:E)=0,MAX(E$1:E1)+1,"")) これでSheet1にあってSheet2に無い行に上から番号が付きます。 Sheet2ではデータが最後の行の次の行にあるA列のセルに次の式を入力して右横方向(最大でF列まで)にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$F:$F,ROW(A1))=0,"",INDEX(Sheet1!$A:$J,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1)))

sapporolove
質問者

お礼

Sheetの件でもお世話になり有難う御座いました。 そこで1番目の式を貼り付け、オートフィルドラッグしましたが、初めての当該行から下に、(1942)の数値が、該当するしないに拘わらず全部表示されます。 E列だけを残しデータをA列に残した整理した表のB1に =IF(A1="","",IF(COUNTIF(A1,Sheet2!A:A)=0,MAX(A$1:A1)+1,"")) を貼り付けてみましたが、同様の結果です。「1942」が何故出てきたのか見ましたら、データに「1941」(映画タイトル)が初めての当該行から2行上にありました。その2行は(007 カジノロワイヤル 2006)と(007-13 オクトパシー)です。数値も文字列としての扱いの筈ですがそれでは駄目なのでしょうか?元データはAが2800行、B表が2400行ですが、上から300行位を残した表でも同じ「1942」が並びます。そこで順番付けがおかしいのではと、整理した表のB1に下記式を貼り付けましたが、初めての当該行から下に(シート2にデータがなし)の文字が該当するしないに拘わらず全部表示されます。 =IF(A1="","",IF(COUNTIF(A1,Sheet2!A:A)=0,"シート2にデータがなし","")) 実はsheetの質問をする前にこの現象でしたので、Sheetの貼り付け方がおかしいのではと思いSheetの質問をしました。そこでどうやら貼り付け方に問題無さそうなので、もう一度作業しましたが同様の結果です。 映画タイトルの表ですので、最初に数字、アルファベット、かなの順ですが、かな部分だけでやってみましたが、今度は(1)がズラッと並びます。 どうぞ宜しくお願い致します。

sapporolove
質問者

補足

有難う御座いました。入り口のところで躓いてます。 A表、B表を並べましたが、共にSheet1になってます。B表をSheet2に載せるにはどうしたら良いのでしょうか?

関連するQ&A

  • 空白行を省いた 表をつくりたい

    第1表 A列 B列 1行 CODE 名前 100行 1001 あいうえお 333行 1002 ああいうえ 441行 1003 おあいうえ 512行 1004 えおいうえ 625行 1005 うえおあい 725行 1006 うえああい 第2表 第1表の空白行を省いた表 1行 CODE 名前 2行   1001 あいうえお 3行 1002 ああいうえ 4行 1003 おあいうえ 5行 1004 えおいうえ 6行 1005 うえおあい 7行 1006 うえああい 第1表は空白が多くて 見ずらいので A2 からB725を 検索して 空白行を省いた表を作りたい。

  • エクセルVBAによるマトリクス表の縦配列

    エクセルVBAで以下のような処理を行うプログラムを作成したいのですが、 シロウトなんで、なかなかスマートに作れません。 どのようにすればいいかご教示いただけたら有り難いです。 (1)下記のように、縦横のマトリクス表にデータが入力されている。   A B C ・・ 1 2 3 ・ ・ (2)これを別シートに縦に2列にデータを並べるように処理する。  左列には"列項目&行項目"、右列には該当するデータをセットする。 A1  A1のデータ A2  A2のデータ  A3  A3のデータ ・   ・ B1  B1のデータ ・   ・ ・   ・ (3)尚、列項目(A.B.C...)と行項目(1.2.3...)の項目数は不定で、セルが空白になるまで、 処理を繰り返すかたちにする。 以上のような条件ですが、よろしくお願い致します。

  • エクセル 2つの表を1つの表に空白行を詰めて表示

    B列~D列に表AがありF列~H列に表Bがあります。 2つの表をJ列~L列に空白行を詰めて表示される方法を教えてください。 サンプル表を添付します。 よろしくお願いします。

  • 同じ様式の表の複数シートから行ごと抽出

    A2:K12の範囲に表がある全く同じ様式のシートが複数あります。 特定の条件が満たされた行を全て別シートに抽出したいです。 1列目と2列目とX列目(これは集計のA1セルに入った値を参照)が空白でない行を全て抽出したいです。1列目と2列目は1行目から順番に埋まっているのですが、X列目は空白になっているものと空白でないものが混在しています。 たとえば、Xが10列目のときは、Aさん、Bさん、Cさん、Dさん、Eさんの行が抽出されるようにしたいです。 VBAのコードを自力で書けないので、よろしくお願いします。

  • 【エクセル】歯抜けの空白欄に上段と同じ値を入れたい

    エクセル(2010)で ある表に ところどころ空欄があり、 そこに上段と同じ値を入れたいです。 随時発生する作業のため マクロ(もしくはVBA)が組めればと考えておりますが、 初心者につき、ご教示いただけますでしょうか。 A列:項番 B列:大項目 C列:中項目 D列:小項目 E列:備考 ※1行目:項目名、2行目以降:値 という表で、 A列のナンバリング・D列の小項目 以外は 上と同じ扱いとなるため空欄となってしまっていますが、 アクセス(DB)に取り込むため、空欄の無い形にしたいのです。 ※ちなみに、A列・D列は空欄が無い状態=最終行以下は空白です。 よろしくお願い致します。

  • Accessの使い方 (ほぼ)同一定義の表の差異確認

    Accessの使い方 (ほぼ)同一定義の表の差異確認 accessの二つのテーブルの値を比較し、差異のある行を出力しようとしています。 A表、B表があり、表定義はほぼ同じです。 (A表に2列追加したものがB表)。 また、A表とB表の値はほぼ同じです。 (A表にある一連のクエリをかけた出力結果がB表)。 今、このクエリのテストのため、A表とB表の間で差異のある行を出力しようとしています。 比較対象はそれぞれの行の各列で、主キーもはっきりしています。 唯一の問題は、列の数が400個あり、結合条件をSQLで書き出すのが面倒 & 結合のSQLの確からしさを証明するものが何もないという点です。 (ちなみに行の数は20万件ほどです。) Accessの何かの機能で、二つの表の各行の各列を検索・比較して同一行を取り出したり、差異の有る行を取り出したりできるものでしょうか。 (テーブルをcsv出力してコマンドで後ろ2桁を削り、FCで比較する、というのはナシでお願いします。できるだけデータの加工をせず簡便に、第三者にも分かりやすく確認したいです。)

  • EXCELで特定項目がある行にフラグを立てる

    EXCEL2010です。 添付図のようなサンプルの表(上)があります。 項目2-A、B、Cのいずれかに「いちご」が含まれる行に対してフラグを追加したいと思います。 表(下)のように「項目1フラグ」列を追加する場合、どのように「いちご」フラグを立てればよいでしょうか?

  • Excel2000で表を作っていますが、うまくできません

    Excel2000で表を作っていますが、うまくできません(T_T) セルA1+B1=C1 C1+A2+B2=C2 C2+A3+B3=C3.... のようなC列に合計欄がある表を作っています。(元帳のような物です) (A列、B列の欄には必ずしも全て数字が入る訳ではありません。) しかし、セルA列とセルB列に数字を入力していない場合、C列に全て「0」が 表示されてしまいます。 数字入力後は、全て下まで残高が入ってしまいます。 セルA列,B列に最後に数字を入れた行まで、Cに数字が入るようにしたいのですが、 できないでしょうか? (30行まで表を作って20行まで数字を入れたとき、21行から30行に残高も入らないように したいのです。) 何だかうまく説明できませんが、是非教えていただけますでしょうか。 よろしくお願いします。

  • Excelの行方向での並べ替え

     行方向に順序がバラバラで入力されている日付データがあります(表1参照)。これを日付の若い順に1列ずつ行方向に並べ変えたいと思っています(表2参照)。  「データ」→「並べ替え」→「オプション」→「列単位」にすることで1行ずつ行方向の並べ替えができることは知っていますが、行数が多いため一括して並べ替えができないか考えております。  どなたかご教示いただければ幸いです。なお、Excel2007を使っています。      A          B        C 1  1996/11/07 1997/02/19 1996/11/21 2  1997/02/19 1997/02/19 3  1996/11/21 4  1997/02/19 1996/11/21 5  1997/02/19 1997/11/06 1997/02/19      ・      ・       (表1:並べ替え前)        ↓ (並べ替え)      A         B         C 1  1996/11/07 1996/11/21 1997/02/19 2  1997/02/19 1997/02/19 3  1996/11/21 4  1996/11/21 1997/02/19 5  1997/02/19 1997/02/19 1997/11/06      ・      ・      (表2:並べ替え後)

  • Excelの高さ

    今、Excel2000で表を作ってます。 B以降の列の高さは変えずにA列の1,2行いっぱいの大きさで日付を入れたいのですが 例えばAの列だけ行の高さを変えるにはどのようにすれば良いのでしょうか? 宜しくお願いします。

専門家に質問してみよう