- 締切済み
エクセル関数(二つの条件に満たない値を検索)
下記のような一覧があります。 日付 管理番号 取引コード 予算コード 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」を書き出すことになります。 同月内では、同じ管理番号は発生しません。 取引先コードは複数あり、それごとに紐付けしている予算コードも 取引先コードの数分あります。 現在はオートフィルタにて、取引先コードを上記のように一つ分だけ抽出して、 予算コードが間違ってるのを一つずつ探してます。 関数で処理できる方法はありますか? 管理番号と日付を表さずとも、エラーだけ出す方法でも構いません。 どうかご教授ください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
こんにちは。 >下記のような一覧 が、A~D列にあり、E列に書き出す場合、 =IF(AND(C1=123456,D1="H060001"),"",TEXT(A1,"m/d ")&B1) ※「取引コード」が文字列の場合は「C1="123456"」としてください。
- mshr1962
- ベストアンサー率39% (7417/18945)
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)
こんにちは~♪ charisanさん、失礼しま~す。。。 charisanさんの回答の追加になりますが~。。。 日付と管理番号を一緒に 右側の列(E列)1列に表示させるのでしたら E2: =IF(VLOOKUP(C2,CODE,2,FALSE)<>D2,TEXT(A2,"m/d ")&B2,"") 下にコピーして下さい。 。。。。Rinでした~♪♪
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 取引コードと予算コードの表を別のシートに用意して、vlookup関数で、取引コードから(別シートの)予算コードを検索し、その結果と、現シートの予算コードがあっていたら「○」違っていたら「×」を表示する式を予算コードの右の欄に作成してはどうでしょう。 関数の引数は VLOOKUP(検索値,範囲,列番号,検索の型) です。 この場合、検索値を取引コード(例えばC2)、範囲を別シートの一覧表、列番号は予算コードをB列に入れたら2、検索の型はFALSEとし、 =vlookup(C2,[範囲],2,FALSE) で別シートから予算コードが求められるので、if関数で判定すればよいと思います。 では。
- charisan
- ベストアンサー率25% (2/8)
取引コードと予算コードが 1対1でしたら、ブックかシートのどこかに2列のテーブルを作成し、vlookupを使えばできます。 テーブルにCODEという名前をつけるとします。 取引コード 予算コード 12345 H060001 23456 S470002 34567 H050233 で、もとの表の右列に =IF(VLOOKUP(C2,CODE,2,FALSE)<>D2,B2,"")とすれば エラー行に管理番号が表示されます。 日付も一緒にとなると、ややこしいか(といいますか、私には方法がわかりません)できないので、これでいかがでしょうか。