こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの数式を教えてください。

数日前に関数について質問したのですが、それに関連してもう一度質問させてください。

シート1とシート2に同じようなデータが入っています。表の形式は少し違います。
シート2のI10にコード番号、E10に単価が入っています。シート2の票の横に、シート1から同じコード番号を検索して、その単価が合っているか検証する式を入れたいです。

=if(I10="","",if(countif(シート1のコードのセル,I10)=0,"該当の数値がありません",if(E10=vlookup(I10,シート1の表,7,false),"○","×")))
わかりづらくて申し訳ないのですが、上記のような計算式を入力しています。
#N/Aと出てきてしまうのですが、なぜでしょうか?数値の表示形式がおかしいのでしょうか。

教えてください。宜しくお願いします。

投稿日時 - 2009-07-10 15:11:53

QNo.5114249

困ってます

質問者が選んだベストアンサー

問題点
シート1のコードのセルが曲者でしょうね。シート1の表の左端の列範囲に置き換えてください。

=IF(COUNTIF(シート1の表の左端の列範囲,I10),VLOOKUP(I10,シート1の表,7,FALSE)=E10,"○","×"),"該当のコードがありません")

他に#N/Aが出るのを利用した方法で下記のようにするのも可です。

=IF(ISNA(VLOOKUP(I10,シート1の表,7,FALSE)),"該当のコードがありません",E10=VLOOKUP(I10,シート1の表,7,FALSE),"○","×"))

投稿日時 - 2009-07-10 21:24:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

前の質問と関連するようだ。その場合前の質問番号を参考に書いておくべきと思う。読者は覚えてられないから。
VLOOKUP関連で#N/Aが出るのは検索表に見当たらないからだと思う。
それは質問者は有るはずと思っていても、データとして、検索値と検索表の値が日病微妙に違うのだ。微妙とは
スペースの有無
全角半角
などがかんがえられ、データ面で見直しをしてみたら。
疑わしい値をA1,B1にコピー貼り付けして、C1に=EXACT(A1,B1)と入れてFALSEになりませんか。
A1には問題のエラーが出ているVLOOKUP関数の第1引数のデータ
B1には第2引数で指定している検索表の中で、A1のデータに一番似てそうか、「該当するはず」と思うデータをコピペ。

投稿日時 - 2009-07-10 21:35:35

ANo.4

最も可能性が高いのは、VLOOKUP関数で、引数にシート1の表となっていますが、その範囲としてはI10の値が検出されるのが最初の列にあり、その列から少なくとも6列プラスされた列までが範囲となっていなければなりませんね。

投稿日時 - 2009-07-10 16:43:48

ANo.3

質問内容がよくわからなかったので、予測半分で回答いたします。
的外れでしたらスルーしてください。

私はこちらの質問を以下のように解釈しました。
・シート1、シート2ともにコード番号、そのコード番号に対応する単価が存在する。
・やりたいこと→シート2のコード番号に対応する単価が、シート1のデータと合致しているかどうかを確認したい。(結果を○×で表示させたい)。またシート2に存在しているコード番号で、シート1に存在しないものを探したい。(”該当の数値がありません”と表示したい)

以上の解釈だと計算式は次のようになると思います。

=IF(ISERROR(VLOOKUP($E10,Sheet1!コード番号列,1,0)),"該当の数値がありません",IF($I10=VLOOKUP($E10,Sheet1!表の範囲,単価の列番号,0),"○","×"))

前半のIF文はシート2の表内コードが、シート1に存在するかどうかの確認です。【コード番号列】は、コード番号列の1列のみ選択してください。

後半のIF文は、シート2の表内で、各コードに対応する単価がシート1と合致するか確認しています。ご存じかとは思いますが、【表の範囲】は左端に検索値であるコード番号列がくるように選択してくださいね。

投稿日時 - 2009-07-10 16:39:33

ANo.2

どちらかのシートのコード番号が文字列になっていたりしませんか?

=IF(I10="","",IF(COUNTIF(Sheet1!A:A,I10)=0,"該当の数値がありません",IF(E10=VLOOKUP(I10,Sheet1!A:G,7,FALSE),"○","×")))

私はこの式で問題なく判定できました。
もし文字列になっていたら、区切り位置で標準に変えてみてください。
問題が解消しないようでしたら他の回答を参考にして下さい。

投稿日時 - 2009-07-10 16:17:02

ANo.1

countif(シート1のコードのセル,I10)
の計算結果はどうなっていますか?

vlookup(I10,シート1の表,7,false)
の計算結果はどうなっていますか?

長い式をただ見ているだけでは、何が原因か解りにくいです。
中に含まれる短い計算式ごとに、計算結果を見てみるようにしましょう。

投稿日時 - 2009-07-10 16:11:28

あなたにオススメの質問