• ベストアンサー

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

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

noname#3785
noname#3785

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

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

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

noname#3785
質問者

お礼

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

noname#3785
質問者

補足

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

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルで"=AND(ISNUMBER(B2),ISNUMBER(C3),ISNUMBER(D4))"の簡略化?

    エクセル2000です。ワークシート関数での質問です。 特定の複数のセルのすべてに数値が入力されているかどうかの判定は、たとえば以下のような関数で調べられますね? =AND(ISNUMBER(B2),ISNUMBER(C3),ISNUMBER(D4)) このように少ないセルならこれでもいいのですが、多くなってくるといちいち、セルの数だけISNUMBER()を書いていくのが大変になります。 '=ISNUMBER(B2,C3,D4)←これでは当然エラーになりますが、こんな感じで簡単に判定するワークシート関数はないのでしょうか?

  • エクセル2007「ISNUMBER関数」の組合せについて

    エクセル2007「ISNUMBER関数」の組合せについて うまく説明できないので具体的に関数を掲載します。 「B列またはC列が空白の場合は空白セルとする」という関数を以下のようにつくりました。 =IF(OR(B2="",C2=""),"",DATEDIF(C2,B1,"Y")) (B1にはtoday関数が入力されています) これにC列が数値ではない場合も空白にするという条件を追加したいのです。 ISNUMBER関数を使うのだと思うのですが組合せ方がわかりません。 ご教示よろしくお願いします。

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • VLOOKUPのエラーについて

    教えて下さい。 =IF(ISERROR(VLOOKUP($B3,Sheet2!$A$2:$D$35,4,FALSE)),"",VLOOKUP($B3,Sheet2!$A$2:$D$35,4,FALSE))+IF(ISERROR(VLOOKUP($B3,Sheet3!$A$2:$C$50,3,FALSE)),"",VLOOKUP($B3,Sheet3!$A$2:$C$50,3,FALSE)) という数式を使っています。 最初のIF文(Shee2)については有効なのですが、それならと、欲張って他のシートも参照できるように、+の後にIF文(Sheet3)を追加したら#VALUE!が表示されます。 何がいけないのでしょうか?

  • ExcelのIF関数で条件が7つ以上ネストされる場合の対応方法

    ExcelのIF関数で以下のように条件が7つ以上ネストされる場合の対応方法を教えてください(if関数だと条件が最大7つまでしか指定できない為)。 IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,36,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,10,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,13,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,6,FALSE)),4, IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,38,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,12,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,16,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,5,FALSE)),4, 4))))))))

  • 関数の中のシート名【複数】を置換を使って置換るには

    タイトルの件、質問します。 下記1の関数があります。 この中にあるシート名を下記2のとおり、置換を使って 書き換えたいと考えています。 実践しましたが、うまくできませんでした。 方法は、手入力以外であれば、置換機能ではなくてもOKです。 ご存知の方、いらっしゃいましたら、宜しくお願いします。 【下記2】 Sheet1 を 1000 に書き変えたい Sheet2 を 2000 に書き変えたい Sheet3 を 3000 に書き変えたい ※1000、2000、3000とは、シートの名前です。 【下記1】 =IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet1!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet1!A:C,2,FALSE)) &IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet2!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet2!A:C,2,FALSE)) &IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet3!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿ブックa.xls]Sheet3!A:C,2,FALSE)) ※本関数は、教えてgoo回答者様に、ご教授いただきました。

  • ISERROR関数を使用してもエラーが出る

    Excel2016でセルにUSDまたは、JPYの文字がある場合はエラーが出ないのですが、それ以外の文字の場合ISERROR関数を使用しても#VALUE!というエラーが出ます。 関数は以下の通りです。 =IF(OR(NOT(ISNUMBER($G5)),NOT(ISNUMBER($K5))),"",IF($B$5<ROUNDDOWN($I5*IF(NOT(ISERROR(SEARCH("JPY",$D5,1))),100,VLOOKUP(CONCATENATE(MID($D5,IF(OR(SEARCH("USD",$D5,1)=4,ISERROR(SEARCH("USD",$D5,1))),1,4),3),"JPY"),$A$12:$B$18,2,FALSE))*$G5*$B$8/IF($B$8=100000,10000,IF($B$8=10000,1000,IF($B$8=1000,100,))),0),"超過",ROUNDDOWN(IF(ISNUMBER($P5),-$P5,-$I5)*IF(NOT(ISERROR(SEARCH("JPY",$D5,1))),100,VLOOKUP(CONCATENATE(MID($D5,IF(OR(SEARCH("USD",$D5,1)=4,ISERROR(SEARCH("USD",$D5,1))),1,4),3),"JPY"),$A$12:$B$18,2,FALSE))*$G5*$B$8/IF($B$8=100000,10000,IF($B$8=10000,1000,IF($B$8=1000,100,))),0))) エラーが出ているのは以下の「【】」の部分のようです。 =IF(OR(NOT(ISNUMBER($G5)),NOT(ISNUMBER($K5))),"",IF($B$5<ROUNDDOWN($I5*IF(【NOT(ISERROR(SEARCH("JPY",$D5,1)))】~ 数値を表示したいのですが解決方法を教えてください。 回答よろしくお願いします。

  • エクセル関数 ISNUMBERについて

    こんにちは。 ISNUMBER と IF関数を用いてセルに"真"か "偽"を表示させたいのですが・・・ 例えば、セルに特定の数値が入力されれば“真”を表示する。ということです。 どうやら、数字の「1」は「10」「12」なども 「1」が含まれていると認識するようで、困っています。 また、他のセルの関数を参照していることからどのような式を組めばよいのか分かりません。 詳しく説明すると以下のようになります。 (( ))はセルに入力されている関数です。        A         B         C 1    2009/01/20   2      1    (( =MONTH(A1) )) 3     4、10月    (( 文字列  )) 4     真    (( = IF(ISNUMBER(SEARCH(A1,A3)),"真", "偽") )) A1 シリアル値で入力された日付 A2 その日付より“月”だけ取り出して表示 A3 真か偽かを判断する為の基本となるデータを入力 A4  ISNUMBER関数 → A2の数値がA3に含まれていれば“真”をそうでないらな“偽”を表示する。 上記のように 1 は 10月 とは異なるので“偽”としたいのですが、10月の 10 の 1 を読み取ってしまうようで “真”と なってしまいます。 11月、12月 等も 1、2、と 読み取ってしまうようで・・・・ 1は 1月のみ“真”と表示。 2は2月のみ“真”と表示。というようにするにはどうしたら良いのでしょうか? 宜しくお願いします。

  • 関数について教えて下さい。

    =IF(ISERROR(VLOOKUP($A3,母日!$C$6:Y$40,23,FALSE)),"",VLOOKUP($A3,母日!$C$6:Y$40,23,FALSE)) の関数『6』『40』という数字を横にドラッグしただけでプラス44づづ増える関数式を教えてください。例えば、 =IF(ISERROR(VLOOKUP($A3,母日!$C$50:Y$84,23,FALSE)),"",VLOOKUP($A3,母日!$C$50:Y$84,23,FALSE)) =IF(ISERROR(VLOOKUP($A3,母日!$C$94:Y$128,23,FALSE)),"",VLOOKUP($A3,母日!$C$94:Y$128,23,FALSE))という具合です。 すみませんがお忙しいところスミマセン。宜しくお願い致します。

  • エクセルの関数の分かりやすい説明の仕方教えて下さい!!

    初心者にエクセルを教えることになりました。 関数をどう説明していいのか分からないので教えて 下さい。 (1)VLOOKUP   式は=VLOOKUP(B5,H5:J10,2,FALSE)で   B5は品番、H5:J10は商品一覧です。 (2)IF   式は=IF(E3>=180,"合格","不合格")    (3)IFを使う式で、エラーを防ぐ式(IFとVLOOKUP)   =IF(A5="","",VLOOKUP(A5,$G$5:$I$16,2,FALSE))    A5=品番  お願いします

専門家に質問してみよう