• 締切済み

EXCELを使用したデータの照合

仕入元帳と請求書の照合です。 SHEET1に仕入データ、SHEET2に請求データがあります。 (SHEET1) 科目…日付…注番…品名…数量…単価…金額…照合…税…税込金額 仕入…12…ああ…あか… 3…20…60…  …3…63 仕入…15…いい…あお… 2…10…20…  …1…21 仕入…18…うう…しろ… 1…20…20…  …1…21 (SHEET2) 科目…日付…注番…品名…数量…単価…金額…照合…税…税込金額 請求…12…ああ…あか… 3…20…60…  …3…63 請求…18…うう…しろ… 1…20…20…  …1…21 請求…15…いい…あお… 2…10…20…  …1…21 というように各SHEETには数千件のデータがランダムに表示されています。チェックポイント注番と金額で各SHEET同一の注番かつ金額があれば照合欄にaを、照合できないものは空白を表示させたいのです。 毎回データの量が違うため、マクロの記録を使えません。何か良い関数や、マクロがございましたらご教授お願い致します。

みんなの回答

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

NO8です。 お役に立てず申し訳ありませんが、重複データの是非が疑問です。 今でもマナー違反(続きの質問)ですので、一度、データの整理(例えば、注番のユニーク性の確保等)を検討され、改めて質問されては如何でしょうか。

st_peco
質問者

補足

了解しました。今までお付き合いいただき有難うございました。 一度内容を整理し再度投稿したいと思います。 本当に有難うございました。

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

NO7です。 >このダブりを解決する条件式はございますか? この「解決」とはどのような事でしょうか。

st_peco
質問者

お礼

はっきりしないご質問をし申し訳ございません。 1つの仕入(注番、金額)に対し1つの請求(注番、金額)を照合したいのです。しかし、現在の式では同じ注番・金額のものがシート1(仕入)で1つ、シート2(請求)で3つあった場合でもaをチェックしてしまうと思われます。これでは仕入値と請求値のチェックした合計が違ってきます。 できれば一度aを付けたものとの照合は避けたいのです。 うまくお伝えすることができずに済みません。宜しくお願いします。

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

NO6です。 旅に出ていましたので回答が遅れましたことお詫びします。 数式に誤りがありましたので、以下の通り訂正致します。 =IF(SUMPRODUCT((LEFT(Sheet2!$D$2:$D$10000,10)=LEFT($D2,10))*(Sheet2!$C$2:$C$10000=$C2)*(Sheet2!$J$2:$J$10000=$J2)),"a","")

st_peco
質問者

お礼

大変お世話になっております。 早速ご回答拝見させていただき、実行してみました。 結果式自体に問題はなく合計は出せたのですが シート1の1つの注番、金額に対しシート2にシート1と同じ注番、金額が2つ以上あった場合にもaが付くようになっています。 このダブりを解決する条件式はございますか? 宜しくお願いします。

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

NO5です。 >例えば品名の一部(セル内の前から10文字)をマッチング (例)品名をD列でセルの先頭から10文字を照合しています。 =IF(SUMPRODUCT((LEFT(Sheet2!$D$2:$D$10000,10)=LEFT($D2,10))*(Sheet2!$C2:$C$10000=$C2)*(Sheet2!$J2:$J$10000=$J2)),"a","")

st_peco
質問者

お礼

本件、私にお付き合い頂き誠に感謝しています。 ご回答いただいたLEFT…の式を入力したのですが #N/Aと表記されてしまいます。 NO4で頂いたご回答では合計金額は合わずともaは表記されていました。 恐れ入りますが再度ご回答お願いします。

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

NO4です。 キー条件を当初回答で進言しました日付等を追加しては如何でしょうか。 (例)B列を日付として照合キーを追加。 =IF(SUMPRODUCT((sheet2!$B$2:$B$10000=$B2)*(Sheet2!$C2:$C$10000=$C2)*(Sheet2!$J2:$J$10000=$J2)),"a","")

st_peco
質問者

お礼

ありがとうございます。私自身も先述であったようにキーとなる列を増やしたのですが(日付)各シートチェックした合計が合いませんでした。 ご回答頂いた数式に加え、例えば品名の一部(セル内の前から10文字)のマッチングといった条件追加は可能なのでしょうか?

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

NO1です。 数式は、どちらのシートもC列を注番、J列を税込金額としていますので、実際の列番号と相違している場合は変更して下さい。 前回答に誤りがありましたので、訂正させて頂きます。 =IF(SUMPRODUCT((Sheet2!$C2:$C$10000=$C2)*(Sheet2!$J2:$J$10000=$J2)),"a","")

st_peco
質問者

お礼

ご回答有難うございます。 早速実行いたしましたが両シートのaを付けた合計が合いません。 もしかしたらシート1の照合キーに対し、シート2に合致するものが2つ以上あった場合にもaが付けれれている可能性があります。 もしそうだとしたら解決策はございますか?

noname#204879
noname#204879
回答No.3

Sheet1!H2: =IF(SUMPRODUCT((C2=Sheet2!C$2:C$9000)*(G2=Sheet2!G$2:G$9000)),"a","") Sheet2!H2: =IF(SUMPRODUCT((C2=Sheet1!C$2:C$9000)*(G2=Sheet1!G$2:G$9000)),"a","")

st_peco
質問者

お礼

ご回答有難うございます。 早速実行してみたのですがシート1とシート2のチェックされたaの合計が合いません。 もしかしたらダブって照合しているのかもしれません。 シート1の照合キー1行に対しシート2には照合キーが2行以上あるものもaと表記されているのかもしれません。 何か対応策はございませんか?

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

例えば、シート1の照合列H2に=IF(SUMPRODUCT((sheet2!$C2:$C10000=$C2)*(sheet2!$J2:$J10000=$J2)),"a","")を入力し、下方向にコピー 又、シート2側も同様に数式のsheet2をsheet1に変更すればクロスで検証できます。 尚、照合キーとして日付もあった方が良いのではないでしょうか。 その場合、(sheet2!$B2:$B10000=$B2)を*で繋げて下さい。

st_peco
質問者

お礼

早速のご回答有難うございます。が、恥ずかしながら私全くの初心者でニュアンス的に式は読めたのですが、実際mu2011さんの式を当てはめ検証することしか出来ませんでした。 さらに貼り付け→コピーをしたのですが両シート0が表記されただけで照合は出来ませんでした。 もう少しお力添えをしていただけないでしょうか?

  • neko-tama
  • ベストアンサー率29% (112/377)
回答No.1

同じデータを探し出して、何か値を出すのなら、vlookupでは?

参考URL:
http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html
st_peco
質問者

補足

ご回答有難うございました。 参考urlを確認させていただいたのですが 全く応用できそうにありません。 己の勉強不足で申し訳ございませんが もう少しだけお力添えをしていただけないでしょうか?

関連するQ&A