エクセルでセルの条件が一致したら、値を挿入したい

このQ&Aのポイント
  • エクセルで2つのシートの2つのセルの条件が一致したら、シート2の該当の部分をシート1に挿入したいのです。
  • Sheet1,Sheet2の比較をしてA列、B列の値が一緒である場合、シート1にシート2の該当部分をC列に挿入したいのです。
  • たとえば、シート1のC列に数式をいれることになるかと思うのですが、シート1とシート2を比較すると、シート1のA1・B1の【社員A 100】とシート2のA3・B3の【社員A 100】が一致しているので、シート2のC3の【夜勤】をシート1のC列のC1に挿入したいのです。
回答を見る
  • ベストアンサー

エクセルでセルの条件が一致したら、値を挿入したい

エクセルで2つのシートの2つのセルの条件が一致したら、シート2の該当の部分をシート1に挿入したいのです。 例 Sheet1 A    B    C 1 社員A 100 2 社員B 200   3  社員A 500 Sheet2 A    B    C 1 社員B 100  休み 2 社員B 700  勤務 3  社員A 100  夜勤   というような2つなシートがあり(実際には、セルの行数は3000行くらいあります) Sheet1,Sheet2の比較をしてA列、B列の値が一緒である場合、シート1にシート2の該当部分を C列に挿入したいのです。 たとえば、シート1のC列に数式をいれることになるかと思うのですが、 シート1とシート2を比較すると、   シート1のA1・B1の【社員A 100】とシート2のA3・B3の【社員A 100】が一致しているので、シート2のC3の【夜勤】をシート1のC列のC1(該当する同じ行に挿入)に挿入したいのです。 どういった式をいれたらいいかわからないので、どなたかおしえていただけたら助かります。 よろしくお願い致します。 知恵をお貸し下さい。 非常にこまっております

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

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

シート1のD列を作業列としてD2セルには次の式を入力して下方にオートフィルドラッグします。 =A2&B2 シート2についてもD2セルに次の式を入力して下方にオートフィルドラッグします。 =A2&B2 その上でシート1のC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A2="",COUNTIF(Sheet2!D:D,D2)=0),"",INDEX(Sheet2!C:C,MATCH(D2,Sheet2!D:D,0))) これでシート1のC列にはお望みのデータが表示されます。

isa_isa
質問者

お礼

ずっとなやんでいたことが解決しました ありがとうございました 本当に助かりました。

その他の回答 (2)

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

同じような質問がありました。 http://questionbox.jp.msn.com/qa7053993.html 今回のケースなら(項目名が1行目にある場合)、以下のような式になりますが、表示データ数が多くなると、シートの動きが重くなるかもしれませんので、必要に応じて計算方法を手動にしてF9キーを押して再計算するなどの対応をしてください。 =INDEX(Sheet2!C:C,MIN(INDEX(((Sheet2!$A$2:$A$3000<>A2)+(Sheet2!$B$2:$B$3000<>B2))*3000+ROW($A$2:$A$3000),)))&""

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

複数条件の検索は数式が長くなり分かり辛いのでSheet2に1列追加してVLOOKUP関数を利用する方法が判り易いと思いますが如何でしょうか。 (1)Sheet2のBC列間に列挿入、C1に=A1&B1を入力、下方向にコピー (2)Sheet1のC1に=IF(COUNTIF(Sheet2!C:D,A1&B1),VLOOKUP(A1&B1,Sheet2!C:D,2,FALSE),"")を入力、下方向にコピー

関連するQ&A

  • EXCELで2つ条件で1つが部分一致のとき

    Excelの2003バージョンです。 現在使用しているファイル名「会社」シート名「支社」のセルE12に 同じシート上のD12(同じ行ですね)と ファイル名「埼玉」シート名「データ」のA列の中の値と一致(完全一致)して なおかつ、シート名「支社」のF3の値(例・後1、後2)とシート名「データ」の C列の値(例・後1 第23号)と部分一致をした時に 使用中シート「支社」のE12に●、していない時は空白にしたいのです。 ファイル「会社」シート名「支社」 行数 --A列----B列----C列-----D列----E列----F列---- 1                             11223344  (ここに関数)  後1 ファイル「埼玉」シート名「データ」 行数 --A列----B列----C列-----D列----E列----F列---- 10   11223344         後1 第23号  11   11223344         一般会社 第44号  のような場合はE1に●になるようにしたいのです。 それ以外は空白で。 あまり詳しくないので、よろしくお願いします。

  • エクセル マクロ 複数条件と部分一致

    1対多数の検索 と 複数条件(部分一致と全部一致)のためコードがよくわかりません。 例えば、xlpart、Match、Index、Offset を使い下記の処理ができる方法はありますでしょうか。 下記A~C列のリストがあります。(10000行程度) (Sheet1)   A       B      C    1 0075926  VU    SerialA  2 0623450  VU     SerialA ・ 3 0002356  WM    SerialA  4 0157592  WM    SerialB ・ 5 0023456  WM    SerialB (・・・以下10000行程度続く) (1) Sheet2の検索値A1に部分一致するものを、Sheet1のA列から選ぶ。 (2) 複数の検索結果値がでてしまうので、さらにSheet2のB1と「全部一致」する ものをSheet1のB列から選ぶ。 (3) 上記(1)、(2)の条件を満たすものをSheet1のA列から1つ選ぶ。さらにその行の C列を転記する。(複数該当する場合は上位記載のものでかまいません。) ※数値はエクセルの書式設定で文字列にしてあります。 (検索前のSheet2)   A       B        C 1 7592    WM 2 2345    VU (以下10000行程度続く) (検索後のSheet2)   A      B         C     D 1 7592    WM    0157592  SerialB      ※7592は、Sheet1のA4に該当する。 2 2345    VU    0623450   SerialA     ※2345は、Sheet1のA2に該当する。 (以下10000行程度続く) 部分一致の後の全部一致の複合的なコードの組み方がわかりません。 繰り返し処理(ForやLoop)をよく理解していないからだと思います。どなたかご教示くださいますでしょうか。大変困っておりよろしくお願いいたします。(WindowsXp、Office2003)

  • エクセル 複数の条件に一致

    複数の条件に一致したセルの内容によって、別のセルに別の文字を自動で表示したいのですが可能でしょうか? 詳細はこのような形で、 【シート1】       A     B       C 1      0001     3/1    有 2      0002     3/1    無 3      0001     3/2    不明 【シート2】       A     B       C 1             3/1      3/2 2      0001       ○      △ 3      0002       ×     "空欄" ・シート2のB2からC3を自動で表示できるようにしたい。 ・シート1のA列とシート2のA列が一致、更にシート1のB列とシート2の1行が一致。 ・シート1のC列が「有」の場合「○」、「無」の場合「×」、「不明」の場合、「△」、「空欄」の場合、「"空欄"」と表示。 知りうる限りの関数を合わせてみましたが、できませんでした。 どなたかいい方法を教えて頂ければと思います。 環境はXPpro、エクセル2000です。 宜しくお願いします。

  • エクセルマクロにて条件比較後にセル挿入をしたい

    下記の様な表(処理前)があるとします。 2行目から行毎に"A列 = C列 AND B列 = D列"という比較を行い、 TRUEなら次の行へ、FALSEなら該当行のC列とD列に 空白セルを挿入し(処理後の表の様にしたいです)次の行へ進む という処理をマクロにて実現したいです。 どのようなマクロを組めば宜しいでしょうか?ご教授お願い致します。 <処理前> A列 B列 C列 D列 東京 斎藤 東京 斎藤 東京 田中 東京 後藤 東京 伊藤 東京 井上 東京 後藤 東京 三沢 東京 井上 大阪 田中 東京 三沢 <処理後> A列 B列 C列 D列 東京 斎藤 東京 斎藤 東京 田中 <両列に空白セル挿入> 東京 伊藤 <両列に空白セル挿入> 東京 後藤 東京 後藤 東京 井上 東京 井上 大阪 田中 <両列に空白セル挿入> 東京 三沢 東京 三沢

  • エクセルVBAで不一致に空白セルを挿入

    エクセル2010です。 A、B列ともソートされています。 ごく少数ですが同一列内に重複するデータもあります。 そして A列に、1行目からA、B、C、E、F、F、H B列に、1行目からA、B、D、E、F、G、I (カンマは実際にはありません。) というような文字列データがある場合 別シートに A列に、1行目からA、B、C、空、E、F、F、空、H、空、 B列に、1行目からA、B、空、D、E、F、空、G、空、I、 (空は空白セルの意味です。) というように、お互いが一致しない場合は空白で飛ばし、一致するものは同じ行にするにはどのような方法がよろしいでしょうか? 例のように少ないデータなら目で見て手作業でできますが、実際は千件以上のデータです。 VBAでも関数でも結構です。よろしくお願いします。

  • 条件に一致する行のセルに値を入れるには

    シート1の「600」の値をシート2の「2006年」と一致するセルの隣に表示させたいのですがどのような関数を使えばよいのでしょうか? 宜しくお願いします。 シート1 ----------------------------------------    A   B  C 1 西暦   値 2 2006年  600 3  ---------------------------------------- シート2 ----------------------------------------    A   B  C 1 西暦   値 2 2005年 3 2006年  600 ← 2006に一致した値 4 2007年 5 2008年 ----------------------------------------

  • 別シート同士のセルを比較して一致したらセルに代入をしたいと考えています

    別シート同士のセルを比較して一致したらセルに代入をしたいと考えています。 excelのVBAを使って行いたいのです book1のsheet1に A列     B列    C列       D列 2000     NEC   VL100 5000     Sony   vaio-200 3000     東芝     letsnote 単価、メーカー、型番、空き列があり 200行くらいです。 book2のsheet1に 同じく、単価、メーカー、型番がありますが 単価がsheet1とは異なり、違うメーカー型番の情報が 4000行くらいあります A列     B列    C列 5225     XXXX   XXXX 2200     NEC   VL100 5200     Sony   vaio-200 2684     XXXX   XXXX 2566     XXXX   XXXX 6000     東芝     letsnote ・・・・・・ ・・・・・・ そこで book1のB,C列のメーカーと型番が一致するものを book2のsheet1のB,C列から探し 一致したら、book1のsheet1のD列に book2 sheet1のA列の値を入れのです。 参考になるスクリプトを教えて頂けると大変助かります、 よろしくお願い致します。

  • エクセル 値が一致しないものを見つけたい

    お世話になります。 エクセルでA列B列にそれぞれ数値が入っている表があり、A列にはあってB列にはない数値を分かるようにしたいと思っています。      A列  B列   C列 1行目  1   1 2行目  1   5 3行目  4   0   4 4行目  5   1    5行目  1   0   1 ・A1、A2、A5の値が1であるように、A・B列とも重複する数値が入ることがあります。 ・A列とB列の値は1対1で対応し、例えばA1がB1と対応するならA2はB4と対応します。 この表ではA3、A5に対応する値がB列にないので、C列にその値を表示させています。 ・一致しない数字を分かるようにする方法にこだわりはなく、例のようにC列に値や×を表示させる、A列に色をつける、一致するものがあった数値は削除する等、なんでも構いません。 お分かりになる方、どうぞよろしくお願いいたします。

  • エクセル複数条件一致の数式

    質問失礼します。 下記のエクセルデータから、E列のセルに、条件にあわせて5か6、もしくは空白を表示させる数式を作りたいと考えています。 条件として セルE2に5を表示さる場合 D2がa4の時、A列から、同じa4を検索し、この場合は、行10と行11が該当します。 その該当する行から、 セルD2の文字列a4がある行のA列のセル、この場合は、セルA2のa1 と文字列が一致するセルB11の11行目が選択され、その行にあるC列の数字を、E2セルに表示させたいです。 E列に入れる数式は作ることが可能でしょうか? 色々試してみましたが、どうしてもうまくできませんでした。 よろしくお願いします。   A  B  C   D    E 1        2 a1  a2   5    a4   5 3 a1  a3       a3   6 4 a1  a1       5 a2  a3   5    a1   5 6 a2  a1       7 a3  a1   6    a2   5 8 a3  a1       a4   6 9 a3  a4   5    a2   5 10 a4  a3   6    a3   5 11 a4  a1   5    a2

  • Excelで2つの条件が一致したデータの抽出

    Excelで2つの条件が一致したデータの抽出 こんにちわ。 タイトルの通り、Excelで2つの条件が一致したデータの抽出作業を行っています。 Sheet1にデータがあり、以下のような構成なっています。 A列    B列    C列 日付   社員名   売上金 6月1日 鈴木     3万円 6月1日 今井     2万円 6月2日 川口     10万円 6月3日 鈴木     4万円 6月3日 野口     1万円 6月4日 鈴木     3万円 6月7日 佐藤     6万円 6月7日 今井     2万円 6月7日 黒木     7万円 6月9日 野口     3万円 A列の日付は不連続かつ同一日付のものもあります。 Sheet2に以下のフォーマットを作成してあります。 1行目:B1セルから連続する日付(6/1~6/30まで) A列:A2から社員名(社員名は各セルに固定) 6月1日 6月2日 6月3日 6月4日 6月5日 ・・・ 鈴木 佐藤 今井 川口 野口 黒木 Sheet2のセルに、Sheet1の表の日付と社員名が一致した売上金のデータを反映させたいのです。 そこで例えばSheet2のB2セルには以下の関数を入れました。 B2=IF(ISNA(MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,))),"",INDEX(Sheet1!$D$2:$D$24,MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,),0))) この関数を入れると、該当するところには売上金のデータが反映されるものの、それ以外のセルには全て#N/Aが表示されてしまいます。 この#N/Aを表示させないようにするには、関数をどのようにすればいいのでしょうか? エクセル初心者なので、分かりやすくご教授願えたら…と思います。 よろしくお願いいたします。 使用OS:XP  使用ソフト:Office2000 Pro.

専門家に質問してみよう