web-dev-qa-db-ja.com

列の一致するデータに基づいて2つのExcelテーブルを結合する

私はExcelの問題に取り組んでいますが、答えを見つける必要があるので、以下で説明します。

Table01に列があります:

  • グループ番号
  • 名前
  • 価格

Table02には次の列があります。

  • グループ番号
  • シティ
  • コード

Image03に示すように、Table01とTable02の2つのテーブルをマージしましたが、順序はありません。

しかし、ご覧のとおり、Group No Columnは両方のテーブルで似ています。

必要なのは、「グループ番号」列を考慮して、Table01と02の一致する行を取得することです。

最終結果は最終画像として表示されます。

Excel関数でこれを行う方法はありますか?

The Image

ありがとうございました!

21
Harindra Singh

Sheet2の2番目の画像に表をD列からF列に配置します。

Sheet1では、セルD2は次の数式を使用します

=iferror(vlookup($A2,Sheet2!$D$1:$F$100,column(A1),false),"")

上下にコピーします。

編集:これは写真です。データは2枚のシートです。 Sheet1で、セルD2に数式を入力します。次に、式をF2にコピーし、必要な行だけコピーします。

enter image description here

36
teylyn

Teylynの答えは私にとってはうまくいきましたが、適切な結果を得るには少し修正しなければなりませんでした。誰がそれを必要とするかについての詳しい説明を提供したいと思います。

私のセットアップは次のとおりです。

  • シート1:2014年の完全なデータ
  • Sheet2:A1:D50の2015年の行を更新し、最初の列でソート
  • Sheet3:行の結合
  • データにヘッダー行がありません

Sheet3のセルA1に次の数式を配置します。

=iferror(vlookup(Sheet1!A$1;Sheet2!$A$1:$D$50;column(A1);false);Sheet1!A1)

これを次のように読んでください:Sheet1の最初の列の値を取得してください(古いデータ)。 Sheet2で検索(更新された行)。存在する場合、Sheet2の指定された列から値を出力します。エラー時には、Sheet1の現在の列の値を出力します。

ノート:

  • 私のバージョンの式では、「;」 「、」の代わりにパラメータ区切り文字として使用されます。私はヨーロッパにいるので、小数点記号として「、」を使用しているためです。変化する ";" 「。」に戻る国に住んでいる場合は、「、」に戻ります。小数点区切り文字です。

  • A $ 1:は、数式を別の列のセルにコピーするときに、常に列1を取ることを意味します。 $ A $ 1は、数式を別の行または列にコピーする場合でも、常に正確なセルA1を取得することを意味します。

A1に数式を貼り付けた後、テーブルの幅いっぱいに達するまで範囲を列B、Cなどに拡張しました。使用される$記号のため、これにより、セルB1、C1などに次の数式が表示されます。

=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(B1);FALSE);'Sheet1'!B1)
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(C1);FALSE);'Sheet1'!C1)

などなど。ルックアップはまだ最初の列で行われていることに注意してください。これは、VLOOKUPでは、ルックアップが行われる列でルックアップデータをソートする必要があるためです。ただし、出力列は、式が貼り付けられる列です。

次に、A1から始まり、Sheet1のデータのサイズ(同じ行数と列数)を持つ四角形をシート3で選択します。 Ctrl-Dを押して、最初の行の数式を選択したすべてのセルにコピーします。

セルA2、A3などは、次の数式を取得します。

=IFERROR(VLOOKUP('Sheet1'!$A2;'Sheet2'!$A$1:$D$50;COLUMN(A2);FALSE);'Sheet1'!A2)
=IFERROR(VLOOKUP('Sheet1'!$A3;'Sheet2'!$A$1:$D$50;COLUMN(A3);FALSE);'Sheet1'!A3)

$記号を使用するため、ルックアップ領域は一定ですが、入力データは現在の行から使用されます。

10