• 締切済み

キーが同じデータを照合すると互いのデータにTRUE又は相手の数字を入れる

キーが同じデータを照合すると互いのデータにTRUE又は相手の数字を入れる。仕方をエクセル関数を利用して出来るのでしょうか。 データA受注番号  集計番号   納品番号 商品番号   金額    12345855   なし    なし    5698756   356000    16854699   なし    なし    5698752   356784    56864725   なし    なし    5897896   625230 データB納品番号  集計番号  受注番号   商品番号   金額     25645    556478   12345855  5698756   356000     36589    689457   16854699  5698752   250000照合して記入ないところに番号をいれ互いの照合にtrue表示/アンマッチの場合相手金額表示/不一致の場合エラー表示をするように、エクセル関数等を利用して出来ないでしょうか。                  

みんなの回答

  • taichi_82
  • ベストアンサー率63% (76/120)
回答No.3

こんばんは #2です。 まだ条件が十分理解できていないのですが、とりあえず再検討してみました。 十分でないと思いますし、理解が誤っている部分もあろうかと思いますが、そこは是非ssddqq8765さんのほうで修正して戴ければと思います。 まずは、長ったらしい、スマートでない数式を何とか理解してください。 (Excelのデータをテキストで表現するのは難しいですね^^;また、もっとスマートなやり方があるのでしょうね) ()内のアルファベットは列番号と考えてください。また、”/”はセル同士の区切りを表しています。(E3)、(H3)等はセル番号 1.元データ  1/データA 2/得意先情報(A)/受注番号(B)/集計番号(C)/納品番号(D)/結果(E)/商品番号(F)/金額(G)/結果(H) 3/12345855/12345855/556478/25645/(E3)/5698756/356,000/(H3) 4/12388999/12388999/空白/空白/(E4)/9869896/250,000/(H4) 5/985689/85965487/985689/35896/(E5)/5698756/289,000/(H5) 6/985687/54789878/985687/26589/(E6)/9869896/3,500/(H6) 7 8/データB 9/納品番号(A)/受注番号(B)/集計番号(C)/結果(D)/商品番号(E)/金額(F)/結果(G) 10/25645/12345855/556478/(D10)/5698756/356,000/(G10) 11/35896/85965487/985687/(D11)/5698756/289,000/(G11) 12/26589/54789878/985687/(D12)/9869896/6,000/(G12) 2.数式 (1)E3の式(E4~E6はE3の式をコピペください。以下も同様) =IF(ISBLANK(B3),IF(ISNA(VLOOKUP(C3,B$10:C$12,2,FALSE)),"エラー",VLOOKUP(C3,B$10:C$12,2,FALSE)),IF(ISNA(VLOOKUP(B3,C$10:C$12,1,FALSE)),"エラー","TRUE")) (2)H3の式 =IF(ISBLANK(B3),IF(ISNA(VLOOKUP(C3,B$10:F$12,5,FALSE)),"エラー",IF(VLOOKUP(C3,B$10:F$12,5,FALSE)=G3,"TRUE",VLOOKUP(C3,B$10:F$12,5,FALSE))),IF(ISNA(VLOOKUP(B3,C$10:F$12,4,FALSE)),"エラー",IF(VLOOKUP(B3,C$10:F$12,4,FALSE)=G3,"TRUE",VLOOKUP(B3,C$10:F$12,4,FALSE)))) (3)D10の式 =IF(ISBLANK(B10),IF(ISNA(VLOOKUP(C10,B$3:B$6,1,FALSE)),"エラー","TRUE"),IF(ISNA(VLOOKUP(B10,C$3:C$6,1,FALSE)),"エラー","TRUE")) (4)G10の式 =IF(ISBLANK(C10),IF(ISNA(VLOOKUP(B10,C$3:G6,5,FALSE)),"エラー",IF(VLOOKUP(B10,C$3:G$6,5,FALSE)=F10,"TRUE",VLOOKUP(B10,C$3:G$6,5,FALSE))),IF(ISNA(VLOOKUP(C10,B$3:G$6,6,FALSE)),"エラー",IF(VLOOKUP(C10,B$3:G$6,6,FALSE)=F10,"TRUE",VLOOKUP(C10,B$3:G$6,6,FALSE)))) 3.照合結果 1/データA 2/得意先情報(A)/受注番号(B)/集計番号(C)/納品番号(D)/結果(E)/商品番号(F)/金額(G)/結果(H) 3/12345855/12345855/556478/25645/TRUE/5698756/356,000/TRUE 4/12388999/12388999/空白/空白/エラー/9869896/250,000/エラー 5/985689/85965487/985689/35896/TRUE/5698756/289,000/TRUE 6/985687/54789878/985687/26589/TRUE/9869896/3,500/6000 7 8/データB 9/納品番号(A)/受注番号(B)/集計番号(C)/結果(D)/商品番号(E)/金額(F)/結果(G) 10/25645/556478/12345855/TRUE/5698756/356,000/TRUE 11/35896/985689/85965487/TRUE/5698756/289,000/TRUE 12/26589/985687/54789878/TRUE/9869896/6,000/3500 ご不明な点があれば、再度補足ください。

ssddqq8765
質問者

お礼

この度は、ありがとうございます。 まだ私は関数については、未熟ですので ひとつ、ひとつ見ながらやっております。 実際にエクセルに入れて試みて おりますので、不足補足等については、後日 出させていただきます。 誠にありがとうございます。

  • taichi_82
  • ベストアンサー率63% (76/120)
回答No.2

こんばんは ssddqq8765さんがなさりたいことがどうしても読み切れませんでしたので、勝手な解釈のもと回答させていただきます。 (VLOOKUP関数を使ったオーソドックス、かつ、力づくのあまりスマートでないやり方です^^;) データを直接置き換えすると循環参照になってしまい、うまくいかないような気がしますので、集計番号と納品番号それぞれの照合結果を入れるための列を追加しています。 また、おそらくキーとなる項目は受注番号だと思いますので、データBでは受注番号を先頭列に移動させています。 (表示が乱れると思いますが、受注番号の列から順番にA列、B列と読んでください) 照合結果 - A B C D E F G 1 データA 2 受注番号 集計番号 照合結果 納品番号 照合結果 商品番号 金額 3 12345855 なし 556478 なし 25645 5698756 356,000 4 16854699 なし 689457 なし 36589 5698752 356,784 5 56864725 なし ERROR なし ERROR 5897896 625,230 6 7 データB 8 受注番号 納品番号 照合結果 集計番号 照合結果 商品番号 金額 9 12345855 25645 なし 556478 なし 5698756 356,000 10 16854699 36589 なし 689457 なし 5698752 250,000 ※”なし”としたセルは、ブランクだったものとします。 セルC3(集計番号の照合結果)の式 =IF(ISNA(VLOOKUP(A3,A$9:D$10,4,FALSE)),"ERROR",IF(VLOOKUP(A3,A$9:D$10,4,FALSE)=B3,"TRUE",VLOOKUP(A3,A$9:D$10,4,FALSE))) (C4、C5はC3の式をコピーしてください) セルE3(納品番号の照合結果)の式 =IF(ISNA(VLOOKUP(A3,A$9:B$10,2,FALSE)),"ERROR",IF(VLOOKUP(A3,A$9:B$10,2,FALSE)=D3,"TRUE",VLOOKUP(A3,A$9:B$10,2,FALSE))) (E4、E5はE3の式をコピーしてください) セルC9(納品番号の照合結果)の式 =IF(ISNA(VLOOKUP(A9,A$3:D$5,4,FALSE)),"ERROR",IF(VLOOKUP(A9,A$3:D$5,4,FALSE)=B9,"TRUE",VLOOKUP(A9,A$3:D$5,4,FALSE))) (C10はC9の式をコピーしてください) セルE9(集計番号の照合結果)の式 =IF(ISNA(VLOOKUP(A9,A$3:B$5,2,FALSE)),"ERROR",IF(VLOOKUP(A9,A$3:B$5,2,FALSE)=D9,"TRUE",VLOOKUP(A9,A$3:B$5,2,FALSE))) (E10はE9の式をコピーしてください) もしなさりたいことと異なるのであれば、補足説明を戴けると幸いです。

ssddqq8765
質問者

お礼

ご返事ありがとうございます。 間違って回答補足に質問項目補足を入れてしまいました。 何卒宜しくお願い致します。

ssddqq8765
質問者

補足

今回は、ご返事ありがとうございます。私の書き方が悪くご迷惑をおかけしました。さて今回の質問ですが、Aデータには得意情報に受注番号・集計番号のどちらか一つが入っており 必ず入っているのが商品番号 金額です。(受注番号は、商品に対し1対1ですが、集計番号は、受注番号がいくつかありまとめた番号です。 データA に入れる照合結果・受注番号/集計番号/納品番号/結果/金額照合結果 データBに入れる照合結果・データで得た照合結果/金額照合結果  例  受注番号  集計番号  商品番号   金額     1234567  268935   359899   23500     1254689  268935   698456   45600     5896578  268935   895666   869800 データBの照合結果としてデータAに受注番号の番号入れか対象データなしのエラー表示。金額照合の結果のTRUE表示と金額誤差の場合データBの金額表示 これに対しデータBにはデータAで得た受注番号・集計番号がある場合TRUE/ない場合のエラ-表示および金額照合の結果のTRUE表示と金額誤差の場合データBの金額表示。 ここで一般てきには、互いに受注番号があれば、集計番号を入れることができますが受注番号がなく集計番号がある場合は、集計番号+商品番号+金額をあわせた番号をキーにして受注番号を入れるしかないと思います。これを番号入れ 金額照合 データA/B両方に表示する方法がわかりませんでした。 照合結果表示例 データA 得意先情報/受注番号/集計番号/納品番号/結果/商品番号/金額/結果 12345855/12345855/556478/25645/TRUE/5698756/356000/TRUE 12388999/空白/空白/空白/エラ-/9869896/250000/エラ- 985689/85965487/985689/35896/TRUE/5698756/289000/TRUE 985687/54789878/985687/26589/TRUE/9869896/3500/6000 得意先情報には受注番号もしくは集計番号が入っています(桁数違い) 受注番号の場合は受注番号同士がキーになり集計番号及び納品番号データインできます。 集計番号の場合、集計番号1に対し受注番号複数 データB 納品番号/受注番号/集計番号/結果/商品番号/金額/結果 25645/12345855/556478/TRUE/5698756/356000/TRUE 35896/85965487/985687/TRUE/5698756/289000/TRUE 26589/54789878/985687/TRUE/9869896/6000/3500 上記のようになればいいと思いますが、できればこれに近いやり方があれば、お教え願います。よろしくお願いいたします。        

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.1

質問が意味不明です。まず、「キー」が何を示しているのか不明、おそらく質問者の社内では「暗黙知」なのでしょう。しかし部外者にとっては分かりようがないのです。ここでつまづいて先に進めません。 こうゆうサイトでは、暗黙知をすべてオープンにしないと解答は期待できないと思います。

関連するQ&A

専門家に質問してみよう