• ベストアンサー

“ISNUMBER” を含む関数について

現在、下記関数を使用しています。 C5=IF(ISNUMBER(B5),VLOOKUP(B5,支払先,2,FALSE)," ") B5に[支払先C]を入力すると、C5に[支払先]が出るようになっています。 [支払先C]と[支払先]は、別シートに一覧表示し、リンクさせてる状態です。 そこで質問です。 (1)別シート一覧表の範囲設定方法  (現在、行の挿入で追加しています) (2)“ISNUMBER”の意味  (IFとVLOOKUPの意味は理解できています) 引継ぎ時に型ができていたので、内容を理解しないまま使っています。 補足が必要かと思いますので、質問も兼ねてご回答頂ければと思います。 宜しくお願い致します。

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

  • ベストアンサー
回答No.4

シート名を書くのは「別のシートを参照する」時だけでいいんです。 今回のようにB5で入力したコードの隣に名称を表示するなら、B5を参 照する時にはシート名を付ける必要はありません。 で、vlookup()関数の中で参照している支払先のコードと名称の一覧 表が別のシートにあるということで、普通ならここで 「Sheet2!A1:B20」のように参照するんですが、どうも質問やお礼を 読んだ感じでは、名前が定義済みで「支払先」としか入力したことが ないような気がします。 メニューで名前の定義を探して下さい。「支払先」という名前で一覧 表の20行目までの範囲が定義されてませんか。ここを変更してやれば 今まで通り何も悩まずに使えるはずです。「=Sheet2!$A:$B」と定義 してやると、Sheet2のA列からB列までの全ての行が範囲に含まれます ので、一覧表が数千件に増えても大丈夫ですよ。

noname#3785
質問者

お礼

お礼が遅くなり、申し訳ありません。 ご回答ありがとうございます。 >メニューで名前の定義を探して下さい。 この方法が知りたかったのです! この名前の定義の方法(ツールバーのどこで設定するのか)を 教えていただけますでしょうか?

noname#3785
質問者

補足

分かりました! [挿入]→[名前]→[定義]ですよね! 知りたかったのは、まさにこの事です!! どうもありがとうございました<(_ _)>

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

Sheet2のA1:B3に会社コードと会社名があるとします。 Sheet1のA列に会社コードを入れ、B列に会社名を出すとき Sheet1のB1に式 =VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE) を入れるべきです。 その時の注意は(1)第四引数はFalseを指定する。 (2)Sheet2の表は絶対番地($付き)で記述する。 ことが肝心です。よくOKWEBの回答にも洩れているケースがあります。 Isnumber(B5)はB列が数値(字)かどうかを判定して(聞いて)いて、数字以外の入力で混乱しないようになっていて、丁寧に組んであります。更にA列未入力セルに、#N/A が出るのを防ぐ役目もしています。 =IF(A5="","",VLOOKUP(A5,Sheet2!$A$1:$B$3,2,FALSE)) としたりもします。 範囲(例えばSheet2のA1:B3に「支払先」と名前をつけると 各シート間で共通になり、Sheet1に式を入れる時も、=VLOOKUP(A5,支払先,2,FALSE) と書けて、Sheet2!が不要になります。

noname#3785
質問者

お礼

お礼が遅くなり、申し訳ありません。 ご回答ありがとうございます! 関数活用は幅が広いですね!勉強になります!!

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.3

>どこに“シート名!”を付ければ良いのか セルの前です。 B5 が Sheet2にあるならば Sheet2!B5 となります。 IF文は IF(結果,TRUEの時の処理,Falseの時の処理) というふうになります。 結果が A=A など 正しければ TRUEになって TRUEの時の 処理をします。

noname#3785
質問者

お礼

ご返事ありがとうございます。 数式の中に入れ込むと云う事でしょうか? IF(ISNUMBER(Sheet!B5),VLOOKUP(Sheet!B5,支払先,2,FALSE)," ") 例えば、Sheet2の一覧表に、20行目まで数字が入っていたとします。 予め範囲が指定してあり、21行目以降の[支払先C]を入力しても[支払先]は表示されず 「#NA」になってしまいます。 この場合、21行目以降もリンクさせる設定方法があります。 確か、Sheet2上で設定できたと思うのですが・・・。 ご存知でしょうか?

noname#11856
noname#11856
回答No.2

ISNUMBERは数値かどうかを判断しています。 > C5=IF(ISNUMBER(B5),VLOOKUP(B5,支払先,2,FALSE)," ") 上記でいうと、 『もし、B5が数値なら、VLOOKUPで検索した結果をC5に。数値以外であれば空白を入れる』 となってます。

noname#3785
質問者

お礼

明解!なご回答ありがとうございます! 完璧に理解できました!!

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

>別シート一覧表の範囲設定方法 Sheet2!A1:B22 というふうに シート名!をつけてあげればいいです。 ISNUMBERは、セルの値が 数値だったら True を返します。 ISNUMBER(B5) では B5の中身が 数値かどうか判定してて IF(ISNUMBER(B5),Trueの時,Falseの時) となります。

noname#3785
質問者

お礼

早速のご回答ありがとうございます。 >Sheet2!A1:B22 というふうに シート名!をつけてあげればいいです。 ・・・との事ですが、どこに“シート名!”を付ければ良いのか 教えて頂けますでしょうか<(_ _)>

関連するQ&A