2つのシートの値の一致・不一致のチェック方法

このQ&Aのポイント
  • 2つ目のシートのEセルと1つ目のシートのAセルの値が一致し、1つ目のシートのQセルと2つ目のシートのGセルの値が一致した場合は、'OK Aセルの値、Qセルの値'と表示されます。
  • 2つ目のシートのEセルと1つ目のシートのAセルの値は一致し、1つ目のシートのQセルと2つ目のシートのGセルの値が一致しない場合は、'NG Aセルの値、Qセルの値'と表示されます。
  • 1つ目のシートのAセルとQセルの値を基準に、2つ目のシートのEセルとGセルを比較して、結果を表示します。
回答を見る
  • ベストアンサー

基本の別シートの値と一致・不一致のチェック

2つ目のシートのEセルとGセルの値が、1つ目のシートのAセルとQセルの値と一致しているかチェックをしたいのですが、 実際にどのような式を入れたら良いのかわかりません。 大変困ってしまっています。 何方か、ご教示頂けると大変幸いです。 1つ目のシートには基準となる値が入っています。2つ目のシートは入力されたデータが入っています。 比較するセルの値は1つ目のシートは空白は入っていませんが、2つ目のシートは、空白や全く違った値が入っています。 結果は、以下のように出力させたいです。 2つ目のシートのEセルの値と1つ目のシートのAセルの値が一致し、1つ目のQセルの値と2つ目のGセルの値が一致した時、2つ目のシートの最後の列へ『OK Aセルの値、Qセルの値』、 2つ目のシートのEセルの値と1つ目のシートのAセルの値は一致したが、1つ目のQセルの値と2つ目のGセルの値が一致しなかった時、2つ目のシートの最後の列へ『NG Aセルの値、Qセルの値』 1つ目のシートのフォーマットは、以下のようです。 Aセル     Qセル 果物     ランク オレンジ    B レモン     C バナナ     A パイナップル  D 2つめ目のシートのフォーマットは、以下のようです。 Eセル     Gセル 果物     ランク バナナ     D 空白      空白 スルメイカ   空白 鞄        B レモン      C メロン      A バナナ      A 以上 ご教示宜しくお願いいたします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.4

どちらのシートも項目(果物、ランク)が1行目から始まって2行目から果物名などが入力されているとして 1つ目のシートのデータはとりあえず10行目までの式です。実際の行に2か所合わせてください。 2つ目のシートの最後の列の2行目に以下の式を入れて下にコピーして試してみてください。 =IF(E2="","",IFERROR(IF((SUMPRODUCT(('1つ目のシート'!$A$2:$A$10=E2)*('1つ目のシート'!$Q$2:$Q$10=G2)))>0,"OK "&E2&"、"&G2,"NG " & E2 &"、"& INDEX('1つ目のシート'!A:Q,MATCH(E2,'1つ目のシート'!A:A,0),17)),"")) 1つ目のシートに バナナ     A と バナナ     C が上記の順番であった場合 2つめ目のシートの バナナ     D の最終列には NG バナナ、A となります。

nnirosan
質問者

補足

何時も大変お世話になっております。 今回も助けて頂き大変感謝の気持ちで一杯です。 ご教示頂いたセルの式を試して見た所、 OKは問題無く表示されましたが、NGは表示されませんでした。 データは、記載ミスがありますので、NGは表示されるはずなのですが。 1つ目のシートでは、Aセル、Qセル、 2つ目のシートでは、Eセル、Gセルと記載しましたが、 実際は、 1つ目のシート(データ数=325行)では、Dセル、Gセル、 2つ目のシート(データ数=3265行)では、Pセル、Kセルになります。 1つ目のデータは2行目から、2つ目のデータは3行目からが実際のデータになります。 下記の式を2つ目のシートの最後の列の3行目に入力して最終列までコピーしました。 =IF(P3="","",IFERROR(IF((SUMPRODUCT(('rkad1160_20220428'!$D$2:$D$325=P3)*('test_20220428'!$G$2:$G$325=K3)))>0,"OK "&P3&"、"&K3,"NG "&P3&"、"&K3 INDEX('test_20220428'!D:G,MATCH(P3,'test_20220428'!D:D,0),17)),"")) 私の貧弱な知識では、NGが出るように色々試して見ましたが、式を修正する事が出来ませんでした。 大変お手数でも、式をご確認頂き、NGが出るように式を直して頂けたら大変幸いです。 以上 どうぞよろしくお願いいたします。

その他の回答 (7)

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.8

> Kセルの値とGセルの値の間に『、』等を付ける事は不可能でしょうか? 付加したい文字列を「"」で囲んで&で繋いでやるとその個所に表示することが可能です。 INDEX(式)で取得したデータがG列のデータですので K3&"、"& INDEX( としてみてください。

nnirosan
質問者

お礼

早速のご教示ありがとうございました。 『、』を付ける事ができました、これでデータ入力ミスチェックが大分便利になりました。 何時もたどたどしい説明にも関わらす、 私がしたい事を的確にサラッとご教示下さります。 4月からExcelを主に使用する業務となり、全く身動きが取れていません。業務の期限も迫る中、パニックと戦い続ける毎日です。 頼れる場所があり、サラッと教えて下さる方がいる事は、業務を続ける上で欠かせない存在であります。 どうぞ、今後ともよろしくお願いいたします。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.7

回答No.6の蛇足ですが もし、1つ目のシートで基準となる値の果物名が重複しないのでしたら バナナ     A バナナ     C のようなことがない場合。 2つ目のシートのK3に以下の式を入れて必要なだけ下にコピーしておけば =IF(P3="","",IFERROR(VLOOKUP(P3,test_20220428!D:G,4,FALSE),"該当なし")) 利用者が果物名を入力した時点でランクは勝手に表示されますので、ランクのミスは無くなります。 また、果物名をミスすると該当なしと表示されますので果物名の入力ミスもその時点でわかります。 ただし、リスト外の果物名入力も可能な場合、その時にも該当なしとなりますので、判断ミスはあるかもしれません。

nnirosan
質問者

補足

早速のご確認とご教示ありがとうございました。 ご質問のrkad1160_20220428は、test_20220428です。 補足に記載する時に記載ミスをしておりました、申し訳ありません。 下記の通りに入力して、無事NGの時も表示をする事が出来ました。 1行の式で、ここまで出来てしまうのですね、大変素晴らしいです。 =IF(P3="","",IFERROR(IF((SUMPRODUCT(('test_20220428'!$D$2:$D$326=P3)*('test_20220428'!$G$2:$G$326=K3)))>0,"OK "&P3&"、"&K3,"NG "&P3&"、"&K3& INDEX('test_20220428'!D:G,MATCH(P3,'test_20220428'!D:D,0),4)),"")) この表示でも十分なのですが、NGとなった時の表示でKセルの値とGセルの値の間に『、』等を付ける事は不可能でしょうか? 入力用ファイルについての入力ミス対策についてのご教示もありがとうございました。 各部署から提出されるExcelのファイルは、その部署毎に手入力されており、データ入力の統一化が進んでおりません。 統一にはまだ時間がかかりそうな状況です。 ご教示頂いた入力ミス対策の式は、別の業務で使わせて頂きます。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.6

NGが出ないのとは直接関係ないと思いますが 1つ目のシートがrkad1160_20220428とtest_20220428で違っていますが正しいでしょうか。 NGが出ないのは "NG "&P3&"、"&K3 INDEX(' K3が付加されていますが、K3が必要だとしたら後ろに&が必要です。 "NG "&P3&"、"&K3& INDEX( INDEX('test_20220428'!D:G,MATCH(P3,'test_20220428'!D:D,0),17) の最後の数値「17」は範囲D:Gの横位置なので取り出したいG列の「4」になります。 元がA:Qだったので「17」でした。 INDEX(test_20220428!D:G,MATCH(P3,test_20220428!D:D,0),4) 上記で試してみてください。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

★補足有難うございます。 >元は、Excelファイル2個でした。  データ入力用のファイルへ規程値データをコピーしています。  規程値のデータに沿って、各部署がデータ入力用に手入力をする為、  入力ミスが発生してしまいます。  そのミスを見抜きたいのです。 ★添付のように、データ入力枠と規定値枠を設定 1.規定値枠の品名列は全ての値を入力できます 2.ランク列:データの入力規制のリストにA、B、C、Dを定義 3.品名&ランク列は式=D3&" "&E3 で文字列結合 4.データ入力枠の品名&ランク列に入力規則のリストに規定値の品名&ランクを定義  これで品名&ランクは規定値以外の値は入りません  チェックの必要はありません  規定値表の管理 5.入力規則のツールはデータリボンの右よりにあいます。  見つからなければまた補足ください 6.データ入力枠に日付を追加しました。  入力規則で日付の期間指定も可能です

nnirosan
質問者

お礼

ご教示ありがとうございました。入力ミス対策の方法ありがとうございました。 今回のデータ入力については、各部署内で独自の入力データを作成しており、 独自の入力データからこちらの入力データへデータをコピペをしている部署があります。 各部署毎で都合があるらしく、全てのデータのフォーマットを統一させるのは難しい状況です。 ご教示頂いた文字列結合やデータ入力規則のやり方、大変参考になりました。 分かり易いご説明を頂きありがとうございます。今後ともよろしくお願いします。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

補足願います >2つ目のシートのEセルとGセルの値が、  1つ目のシートのAセルとQセルの値と一致しているか  チェックをしたいのですが、 1.Sheetを2つ使い分けておられているのは何故ですか  何故ならセル名を特定するためにSheet名で修飾することになります 2.一つ目のSheetのA列の値は重複の無いユニークな値ですね 3.2つ目のSheetのE列にはバナナ重複しています、ランクがAとD  『NG Aセルの値、Qセルの値』  これは式だけでは無理です。マクロの記録、またはVBAが必要です。

nnirosan
質問者

補足

説明が足りずでもうしわけありません。 元は、Excelファイル2個でした。データ入力用のファイルへ規程値データをコピーしています。 規程値のデータに沿って、各部署がデータ入力用に手入力をする為、 入力ミスが発生してしまいます。そのミスを見抜きたいのです。 データ入力用で、1行毎にセル式を入れて判定は難しいでしょうか?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問の表現が不十分で、尋ねている状況がよくわからない。 エクセルの経験が十分でないのだろうことと、他人に説明する、ということを甘く見ないでほしい。また他人は、他人の過去の経験から、それなりの思い込みというものもあって、それが邪魔をする、こともあるのだ。 また、セルの行を重視した説明表現を心がけること。 (例)Aセルーー>A列の各セルというべき。 (1)2シートのデータ実例(模擬)を(10セル=10行分ぐらい)挙げて (2)どういう比較をするのか、1、2例の場合を、文章で・エクセルの語句で説明するべきだ。こことここがこうだから、ここを探して、こことここを比べる、とかのように。同僚にこの作業を、手作業で、もし頼むときは、そういう説明を言葉で、するだろう。 これは、将来ぶつかると思う、プログラミングの作業そのものの思考過程だと思う。 == 例えば (1)2つ目のシートで出てきたバナナ(E列)を1つ目のシート(のA列)にあるかを探し、 (2)あれば、1つ目のシート同行Qセルのランクと、2つ目のシートのG列のランクが一致しているか、チェックする などか(?)想像して書いているが。 両シートでバナナなどの出現順序は同じではないだろう。存在するとも限らないだろう?だったら単純なIF関数での比較=>式の複写、ででは、出来ないのだろう。 1つ目のシートに、2つ以上あればどうする? (質問者には「当然という」会社の業務関連の知識は、読者にはないのだよ。) すると、2つ目のシートのバナナを探すという処理が必要で、複数該当があり得るなど複雑なことになる。 探索は関数では難しい点がある。VLOOKUP関数、Match関数、なども1つ目しが探さない、とかの特徴(制約)がある。

nnirosan
質問者

補足

親切・丁寧なご指摘ありがとうございました。 ご指摘の、(1)、(2)の通りです。 下記のように、1つ目のシート=規程値データ、2つ目のシート=入力データとして、 再度データを追加しました。 規程値データの記載は重複無しです。 やりたいことは、 規程値データA列と入力データE列が一致した場合、入力データG列の記載が規程値データQ列と一致しているか、一致してないかの 判定を行いたい。 1つ目のシートのフォーマットは、以下のようです。(シート名=規程値データ)    A列      Q列 【項目:果物】 【項目:ランク】   オレンジ     B   レモン      C   バナナ      A   パイナップル   D   キュウイ     E   マンゴ      F   トマト      H   スイカ      G   ナス       J   トウモロコシ   I 2つめ目のシートのフォーマットは、以下のようです。(シート名=入力データ)    E列       G列 【項目:果物】   【項目:ランク】   果物        D   バナナ      空白   空白       空白   スルメイカ     B   鞄         C   レモン       A   メロン       A   バナナ       A   トウモロコシ   空白   空白       空白   キュウイ      E   キュウイ      B

  • kon555
  • ベストアンサー率52% (1749/3354)
回答No.1

 if関数での一致確認で実現できます。 http://marus.info/excel-if-20/  複数の条件が絡むので、バージョンによってはifs関数を使う方が分かりやすいと思います。 https://www.tipsfound.com/excel/04if2

関連するQ&A

  • 二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセル

    二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を 別のシートに設定するには、どうしたらいいでしょうか? [シート1] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? 02|A2 yyy 03|B1 ??? 04|C1 sss [シート2] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 aaa 02|A3 bbb 03|B0 xxx 04|B1 ccc 05|C1 sss シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、 シート2の [B] の値を シート1の[C]に設定するための関数はどのようにしたら良いでしょうか? 最終的に、シート1が --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? aaa 02|A2 yyy 03|B1 ??? ccc 04|C1 sss sss となります。 Excelの関数あマクロは、どうしても分からなく質問させてもらいました。 申し訳ありませんが、ご教授宜しくお願い致します。

  • 別のシートのセルと同じ値を返すには?

    エクセル2000です =a1と書けば他のセルにもa1の値を返せますが、 他のシートのセルと同じ値を返すにはどうすればよいのでしょうか?

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

    シート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年 ----------------------------------------

  • 別シートへのセル参照について

    別シートへのセル参照についての質問です。 例えばSheet1のA1,B3,C6,G9に値が入っているとします。 その値を順にSheet2のB2,C4,D9,E17に参照したいのですが、 それぞれにセル参照しないとダメなんでしょうか? Sheet1,Sheet2に違う種類の表があって、それぞれに同じ値を入力するんですが、Sheet1に入力すれば自動的に入るようにしたいです。 実際はSheetや、値を入力するセルがかなり多いので、ひとつひとつセル参照するのが大変なので・・・よろしくお願いします。

  • ExcelVBA複数条件一致後別シートに結果表示

    初めて質問させていただきます。VBAとマクロを勉強中なのですが、数値だけのcsvデータ(3万行くらい)をマクロで処理するように指示されて困っています。 ●ファイルの内容(概要) <Sheet1> A列:性別(男性:1、女性:2でコード化) B列:死因コード(数値5~6桁) C列:年齢 D列:市町村(3桁でコード化「201」等) <Sheet2> ・「セルA1」に表にしたい市町村コードをあらかじめ入力しておく ・セルB1~セルEC1まで死因コード ・セルA2~セルA132まで年齢0~130 ・セル範囲B2~EC132に市町村1の男性の値が入る ・セルB133~セルEC133まで死因コード ・セルA134~A264まで年齢0~130 ・セル範囲B134~EC264に市町村1の女性の値が入る Sheet2にはあらかじめ表を作成しておき、行と列の値を参照してSheet1で一致する値が、列と行が交わるところの空白セルに入力した市町村コードと一致していることもふるいにかけられ、表で結果としてカウントされるときには男女別に分かれるようにしたいのですが可能でしょうか? ややこしくて申し訳ありません。繰り返しあらかじめ作成された表にカウント結果を入力させる記述はヒントを頂ければ頑張ります。 なので、4つの条件に一致した場合にカウントして別シートに返すにはどうしたらいいのか助けていただけますと幸いです。 それと、シート1の最終行は決まっていません。

  • エクセルでシートに入力した値を別シートに飛ばし、月別に集計する方法を教えてください

    タイトルでは分かり辛かったとは思いますが、要約すると以下の通りです。 1.元シート(以下Aと呼びます)に毎日同じセル内に1回値を入力します。 2.その入力された値を別シート(以下Bと呼びます)へとリンクさせ、尚且つそのBシート内で1か月分の集計を取ります。 つまりAシートでは毎日同じセルに値を入力しますが、Bシートでは1列ずつ下に記録され1か月分の入力がされていく、そのような操作は可能でしょうか? Bシートのあるセルに”=Aシートの指定セル”を入力するとAシートで値を変更するたびに同じセル内で値が更新されてしまいます。 どなたか方法が分かる方お知恵をお貸し下さい。よろしくお願いします。

  • シート名をセルに入力しこれを使って別ブックを参照

    Excel2010を使用しています。 別のブックのあるシート内にある表からデータを取ってくる方法を教えて下さい。 ****前置き**** 例えば YYY.xlsx と ZZZ.xlsx という2つのブックがあるとします。 YYY.xlsxの内容 H1、H2、・・・、H9という名前の9つのシートがあるとします。 各シートには同じフォーマットの表があり、セルD10:P12に値が入っています。 ZZZ.xlsxの内容 1月 という名前のシートがあるとします。 シート1月の中に セルA1には H1 セルA2には H2  : セルA9には H9 という値が入っています。 ********本題******** ブック ZZZ.xlsx 内のシート 1月 のセルE1 に ブック YYY.xlsx 内のシートH1のセルD10の値を表示させる方法を教えて下さい。 ただし、シートの指定は、シート 1月 のセルA1内の値と一致するのシート名のセルD10の値を表示させたいと考えています。 ですので、例えば、セル A1 に H5 という値が入っていれば、セルE1には YYY.xlsx内のシートH5のセルD10を表示させるようにしたいです。 VLOOKUP関数とINDIRECT関数を使えばできるのでは?と思っていろいろ試しているのですが、上手くいかないのが現状です。 どうかよろしくお願いします。

  • EXCEL シートの値を求める

    こんにちは。こちらではいつもお世話になっています。 以下のような場合、どのような方法があるのかを教えてください。 ========================== ・1つのブックに複数毎のシート(例:シートA・シートB・シートC)があります。 ・それらシートの同じ箇所のセルの値(例:A1)を別シート(例:シートD)のA1から下に順番に入れたいと思っています。 ・シート枚数が増えても対応できるような方法であれば助かります。 【シートD】   A                  B 1 シートAのA1のセルの値 2 シートBのA1のセルの値 3 シートCのA1のセルの値 ========================== 説明が不十分であれば、申し訳ございません。 宜しくお願いします。

  • エクセルでの該当する条件に一致する値の抽出

    エクセル初心者で困っています。 どなたかお助け下さい。 以下の様な表があります。 A   B  C  D   E  F   G 1商品名 入荷数 消費1 消費2 性能1 性能2 性能3 2○○  2   1   2   △△  ◆◆  □□   3××  2   1   2   □□  △△  ◆◆ 4○○  2   1   2   ●●  □□  ◎◎ この表を基に、別シートを以下の様に作成して A   B  C  D   E  F   G 1性能 【◆◆】 2 3商品名 入荷数 消費1 消費2 性能1 性能2 性能3 4○○  2   1   2   △△  ◆◆  □□   5××  2   1   2   □□  △△  ◆◆ セルB1に性能名を入力して、入力した値と 基となるシートのEFGの列から一致する値があった場合 該当する行をそのまま表示するような式を作りたいのですが可能でしょうか? 分かりづらい質問で申し訳ありませんが ご回答いただけるとありがたいです。

  • エクセル 別シートからのコピーについて

    エクセル2010を使用しています。 つたない文章で申し訳ございません。どうか助けてください。 【状況】※実際の状況とは多少異なりますが、簡易的に記載させて頂きます。 シート1 「4-E」 セルに : シート2の「5-G」 「4-F] セルに : シート2の「5-K」 「4-G」 セルに: シート2の「5-O」 のようなリンクを貼っているとします。 【質問】 「4-H」「4ーI」~「4ーM」のセルに同じようにシート2のリンクを貼っていきたいのです。 セルを引き伸ばしてもリンクが「5-P」「5-Q]のように1つ繰り上がった値(アルファベット) に自動的になってしまいます。 上記のように別シートからとばしとばしのセルのリンクを簡単にコピーして引きのばす 方法を教えて下さい。 よろしくお申し上げます。

専門家に質問してみよう