Q&A

回答の並べ替え:
投稿新規に質問を投稿する

データの突合を行いたい

miyu miyu

2023-07-21 10:22

いつもお世話になっております。
①と②の伝票番号を元に、①・②の金額を突合したいです。
(①にはあって②にはない伝票番号や逆パターンもある可能性あります。)

その際のアクション設定をご教授いただけますと幸いです。

miyu miyu
ありがとうございます。
重くならず、正常処理できました。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
1万件以上のデータがあるという事で、左右で2万のVLOOKUP式を埋め込むことになると思いますので、気にすることは確かにその通りかと思います。

CountIFやSumIFに比べて、VLOOKUPの方が早いイメージですので、もし未実施であれば、一度お試し頂き、耐えられる時間か否かをお試しください。

それ以外の方法としては、以下の内容などがあると思います。

案①データ数が多いとき、少ない時があれば、VLOOKUP式をデータ件数に合わせて
 あとからセットする方法

案②VLOOKUPで取得している値を、VLOOKUPを使わずにアクションを使用して
  実現する。
  データ1件につき、もう1方の表の10000件を繰り返し処理して一致するデータを
  探す形になりますので、繰り返し処理のトータルが10000件×10000件になります。
  処理はそこまで遅く無いと思いますが、アクションを作成することが手間になって
  しまうと思います。

案③左右のデータを一度2つのテーブルに登録して、2つのテーブルを外部結合で
  取得して画面に表示する方法があります。

私の感覚としては、VLOOKUPを実装した結果がレスポンス的に耐えられれば、VLOOKUP方式で実現し、
それが難しければ、案③での実現にする事を考えます。

よろしくお願いいたします。
メールコンタクトをとる
miyu miyu
ご回答ありがとうございます。

VLOOKで引く場合、データが1万行ちかくあるのですが重くならない方法などありましたら教えていただきたいです。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
メダルベストアンサー
こんにちは。

左右の表の右側に、[相手側の金額を取得する列]、[相違結果を表示する列]の2列を予め数式を入れておけば、アクションを利用せずに表示が可能となります。

イメージの下に数式を表示しておりますが、
[相手側の金額を取得する列]はVLOOKUPにて取得
 =IFERROR(VLOOKUP($D4,$I$4:$J$23,2,FALSE),"")
[相違結果を表示する列]はIF文にて文言を切替え表示
 =IF(F4="","データなし",IF(E4=F4,"一致","金額差異あり"))
にて実現しております。

よろしくお願いいたします。
メールコンタクトをとる