- 締切済み
キーが同じデータを照合すると互いのデータにTRUE又は相手の数字を入れる
キーが同じデータを照合すると互いのデータにTRUE又は相手の数字を入れる。仕方をエクセル関数を利用して出来るのでしょうか。 データA受注番号 集計番号 納品番号 商品番号 金額 12345855 なし なし 5698756 356000 16854699 なし なし 5698752 356784 56864725 なし なし 5897896 625230 データB納品番号 集計番号 受注番号 商品番号 金額 25645 556478 12345855 5698756 356000 36589 689457 16854699 5698752 250000照合して記入ないところに番号をいれ互いの照合にtrue表示/アンマッチの場合相手金額表示/不一致の場合エラー表示をするように、エクセル関数等を利用して出来ないでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taichi_82
- ベストアンサー率63% (76/120)
こんばんは #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 ご不明な点があれば、再度補足ください。
- taichi_82
- ベストアンサー率63% (76/120)
こんばんは 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の式をコピーしてください) もしなさりたいことと異なるのであれば、補足説明を戴けると幸いです。
お礼
ご返事ありがとうございます。 間違って回答補足に質問項目補足を入れてしまいました。 何卒宜しくお願い致します。
補足
今回は、ご返事ありがとうございます。私の書き方が悪くご迷惑をおかけしました。さて今回の質問ですが、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)
質問が意味不明です。まず、「キー」が何を示しているのか不明、おそらく質問者の社内では「暗黙知」なのでしょう。しかし部外者にとっては分かりようがないのです。ここでつまづいて先に進めません。 こうゆうサイトでは、暗黙知をすべてオープンにしないと解答は期待できないと思います。
お礼
この度は、ありがとうございます。 まだ私は関数については、未熟ですので ひとつ、ひとつ見ながらやっております。 実際にエクセルに入れて試みて おりますので、不足補足等については、後日 出させていただきます。 誠にありがとうございます。