• 締切済み

エクセル関数(二つの条件に満たない値を検索)

下記のような一覧があります。 日付 管理番号  取引コード 予算コード 9月10日  A0001    123456  H060001 9月28日  A0023    123456  H060001 9月18日  A0048    123456  H060021 9月13日  A0050    123456  H060001 9月10日  A0060    123456  H060001  ・      ・       ・       ・  ・      ・       ・       ・  ・      ・       ・       ・ 取引コードが123456の時は、予算コードはH060001と入力せねばなりません。 ですが、三番目のように、H060001をH060021と誤って入力しているもののみを 見つけたいのです。 上記の表の場合、「9/18 A0048」を書き出すことになります。 同月内では、同じ管理番号は発生しません。 取引先コードは複数あり、それごとに紐付けしている予算コードも 取引先コードの数分あります。 現在はオートフィルタにて、取引先コードを上記のように一つ分だけ抽出して、 予算コードが間違ってるのを一つずつ探してます。 関数で処理できる方法はありますか? 管理番号と日付を表さずとも、エラーだけ出す方法でも構いません。 どうかご教授ください。

みんなの回答

noname#37676
noname#37676
回答No.5

こんにちは。 >下記のような一覧 が、A~D列にあり、E列に書き出す場合、 =IF(AND(C1=123456,D1="H060001"),"",TEXT(A1,"m/d ")&B1) ※「取引コード」が文字列の場合は「C1="123456"」としてください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

E2=SUMPRODUCT(($C$2:$C$100=$C2)*($D$2:$D$100=$D2)) として取引先コード毎の予算コードの個数は出せます。 全部の予算コードが間違ってない限り、個数の少ないものがエラーとして抽出は如何でしょうか? それとも >取引コードが123456の時は、予算コードはH060001と入力せねばなりません。 がすべての取引先で固定なら別表を作成しておいて E2=VLOOKUP($C2,別表,2,FALSE)=$D2 で結果がTRUE以外(予算コード間違いはFALSE、取引先コードなしは#N/Aと表示)で抽出

  • rin01
  • ベストアンサー率43% (33/76)
回答No.3

こんにちは~♪ charisanさん、失礼しま~す。。。 charisanさんの回答の追加になりますが~。。。 日付と管理番号を一緒に 右側の列(E列)1列に表示させるのでしたら E2: =IF(VLOOKUP(C2,CODE,2,FALSE)<>D2,TEXT(A2,"m/d ")&B2,"") 下にコピーして下さい。 。。。。Rinでした~♪♪

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  取引コードと予算コードの表を別のシートに用意して、vlookup関数で、取引コードから(別シートの)予算コードを検索し、その結果と、現シートの予算コードがあっていたら「○」違っていたら「×」を表示する式を予算コードの右の欄に作成してはどうでしょう。  関数の引数は   VLOOKUP(検索値,範囲,列番号,検索の型)  です。  この場合、検索値を取引コード(例えばC2)、範囲を別シートの一覧表、列番号は予算コードをB列に入れたら2、検索の型はFALSEとし、  =vlookup(C2,[範囲],2,FALSE)  で別シートから予算コードが求められるので、if関数で判定すればよいと思います。 では。

  • charisan
  • ベストアンサー率25% (2/8)
回答No.1

取引コードと予算コードが 1対1でしたら、ブックかシートのどこかに2列のテーブルを作成し、vlookupを使えばできます。 テーブルにCODEという名前をつけるとします。 取引コード 予算コード 12345    H060001 23456    S470002 34567    H050233 で、もとの表の右列に =IF(VLOOKUP(C2,CODE,2,FALSE)<>D2,B2,"")とすれば エラー行に管理番号が表示されます。 日付も一緒にとなると、ややこしいか(といいますか、私には方法がわかりません)できないので、これでいかがでしょうか。