• ベストアンサー

excel セル未入力→空白 任意の入力値→表示するには

お世話になります。 わかりにくいタイトルの上、過去に質問があるかもしれませんが・・・ ○セルA1に別シートよりVLOOKUPでひっぱってきた数値を表示(空白の場合も有り) ○セルB1にセルA1の値、数値表示・もしくは何か入力があれば”入力有”空白ならば空白表示をするのはどうしたらいいのでしょうか? IF(A1="","","入力有")としましたが、もともとA1にはVLOOKUPの数式が入っていますし、 IF(0<A1,"入力有","")としたら、A1にはマイナス数値表示もありました。 「何らかの入力が有った場合そのまま表示」という指示はあるんでしょうか?(例えば、検索の時に使う[*]のような・・・) よろしくお願い致します。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.7

No.2&3です。 VLOOKUPの値が#N/Aになるのは、VLOOKUPの第1引数で指定された数値(あるいは文字列)が参照する表に存在しない場合です。 VLOOKUPで参照したセルが空の場合も「0」という数字の場合も、A1に持ってきたときには「0」になってしまいます。これはVLOOKUPに限ったことでなく、他のセルを参照するときにはそうなるのです。たとえばA1に何も入力せず空白としておいて、B1に=A1という式を入れるだけで、B1には0と表示されてしまいます。 したがって、VLOOKUPの結果、参照先のセルが空白の場合は空白を、0という数字が入ってきたときは0を表示させたい(要は参照先と同じように表示させたい)のであれば、A1に表示する時点で細工する必要があると思うのです。そうでないと、B1で=IF(A1=0,…)とやっても、その0は本当に0だったのか空白セルだったのかわからないので、本当に0が入っていた場合に表示されません。 0という数値が元の表に入っていることがあり得ないのであれば、それでもいいと思います。条件付き書式で「"0"なら白」、という設定されているということは、0の場合はあり得ない、ということかもしれませんが、果たして本当に0の値があった場合を想定して設定しているのかどうか、ちょっと疑問です。 それから、「何らかの数値」というのを判定する関数として、 ISNUMBER(A1) というのがあり、これはA1に数値が入っているときにTRUEになります。 他にも、 ISTEXT(A1)はA1に数値でなく文字列が入っているとき、 ISNONTEXT(A1)はA1に文字列でない値が入っているときにTRUEになります。文字列でない値ということは数値だからISNUMBER(A1)と同じではないか、と思われますが、A1に#N/Aなどのエラーが表示されている場合、ISNUMBER(A1)の場合はFALSEになりますが、ISNONTEXT(A1)の場合はTRUEになります。 また、ISBLANK(A1)はセルが空だったらTRUEになります。 この関数で注意する点は、本当に空のセルだったらTRUEになるのですが、数式の結果""となっているときはFALSEになります。""が入っている場合は、あくまでも「空のセル」でなく「""という文字列が入っている」、と認識されるのです。したがって、上のISTEXT(A1)も、A1が本当に空ならFALSEに、""が入っていたらTRUEになります。 見た目上の空白は、数式も入ってない本当に空のセルか、""という文字列の2種類あるので、関数の値もそれに左右されます。ややこしい世界です。 以上、補足(というより蛇足?)でした。

その他の回答 (9)

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

#3でもおっしゃっていますが、 関数における()内の各々の引数は、セルの「値」を問題にするもので、式や書式コメントその他は一切問題(処理対象、演算等の材料)にできません。ここのところを抑えてない質問が相当あり、不必要な質問をしたり、考えが横道にそれます。 A1を空白 B1に =IF(A1="","",1) C1に =IF(B1="","",1) をやってみるとC1は空白になります。 質問の場合はA1が空白でなく、0が入っていたためでしょう。 ですから、=IF(ISERROR(VLOOKUP(・・),"","",VLOOKUP(・・)) のようにエラー(むつからない場合)は強制的に空白をセットします。 ーーー >関数では「何らかの数値」?何か入力があればといったような指示はないんでしょうか。 本件では、式が入っているかどうかではなく、エラーかどうかを 判別すべきものでしょう。 式の有無の場合、関数式は最初に言った値を判別したり、利用して処理するので、式の有無を判別する関数はありません。 CELL関数にもない。 VBAでユーザー関数をつくりHasFormulaプロパティを使えば判別できますが、本質問では関係のないことです。 それをやったら、A列全部にVLOOUPが入っていれば、識別に 使えない。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.9

#1です。 やはり空白が0になってましたか?それも対応なら A1のVLOOKUPを =IF(ISNUMBER(VLOOKUP(検索値,範囲,列番号,FALSE)),VLOOKUP(検索値,範囲,列番号,FALSE),"") としてB1に#1を設定するか、A1はそのままで =IF(ISNUMBER(VLOOKUP(検索値,範囲,列番号,FALSE)),"入力有","")

merumo_chan
質問者

お礼

皆様、多くのアドバイスありがとうございました。 問題は解決しました。 色んな方法があることもとても勉強になりましたし、感謝です。 ここにまとめてお礼させて頂きます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.8

考え方を変えて回答してみます。 VLOOKUP関数で参照する範囲に空白がある場合 "0" が返ってきます。 もともと "0" が入力されているセルとは区別できません。 であれば、空白でない空白を示すマークがあれば良い訳ですので、参照先の空白に #N/A または =NA() を入力しましょう。 #N/A はデータが無いことを示すエラーです。セルに直接入力する事でその参照する関数はエラー(#N/A)を返します。 =NA() は #N/Aを返す関数です。 あとは ISNA関数で #N/A を判定するだけです。 A1 =IF(ISNA(VLOOKUP(検索値,参照,列番号)),"",VLOOKUP(検索値,参照,列番号)) B1 =IF(ISNA(A1),"","入力有") こんな感じでしょうか。  ※以下、複数ある参照範囲の空白セルに #N/A を一括して入力する方法です。  ・空白セルの1つに #N/A を入力  ・参照範囲を選択  ・編集→ジャンプ→セル選択→空白セル(を選択)→OK→編集→貼り付け

回答No.6

>A1は空白かとおもっていましたが >"0"が入力されており、空白ではなく条件付で「"0"なら白」になっていました。 と言う補足がありましたので、 =IF(A1=0,"","入力有") ではどうでしょうか。 質問にある 「何らかの入力が有った場合そのまま表示」という部分は、A1に引っ張ってきた値を そのまま表示ということでしょうか? でしたら、 =IF(A1=0,"",A1) でいかがでしょう。

  • xaxyaxe
  • ベストアンサー率14% (1/7)
回答No.5

これならエラー関係ナシでした。 A1=IF(ISNUMBER(VLOOKUP(xxx)),VLOOKUP(xxx),"") B1=IF(A1="","空白表示","入力有り")

  • xaxyaxe
  • ベストアンサー率14% (1/7)
回答No.4

○セルA1に別シートよりVLOOKUPでひっぱってきた数値を表示(空白の場合も有り) 空白場合、#N/A が出ると思うのですがこれはどのように処理したいのでしょうか? (こちらの設定間違いだったらごめんなさい)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.2です。ちょっと補足。 > IF(A1="","","入力有")としましたが、もともとA1にはVLOOKUPの数式が入っていますし、 数式が入っているかどうかは関係ありません。あくまでも上の A1="" というのは、A1に入っている「値」が空文字列かどうかで判定されます。数式の結果の値が""であれば、""として判定されます。 VLOOKUPでは空のセルを参照したときに数値の0に置きかえてしまい、""にならないので、先手を打ってVLOOKUPの値が""のときは""、そうでないときはVLOOKUPの式を、というIF文にしたのが先の回答です。 なので、A1のセルを先の回答のようにしておけば、B1セルは、 IF(A1="","","入力有") でOKかと思います。 もっとスマートな方法があるかもしれませんが…。

merumo_chan
質問者

補足

なるほど!!A1にひっぱってくるときに、数値表示にするか空白表示にするかを指示するんですね! 後、 >数式が入っているかどうかは関係ありません。あくまでも・・・ というのは、式が入ってからではなく"0"が入っていたからというのが正しい理由なんですね。 ありがとうございます。 参考までに、関数では「何らかの数値」?何か入力があればといったような指示はないんでしょうか?

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

あまりスマートではありませんが、A1の式を =IF(VLOOKUP(xxxxx)="","",VLOOKUP(xxxxx)) とすると、VLOOKUPの参照先が空白のときは、空白になります。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

A1の結果が数値なら"入力有"を表示すればいいなら =IF(ISNUMBER(A1),"入力有","")

merumo_chan
質問者

補足

早速のお返事ありがとうございます。 今、貼り付けてみましたらA1は空白かとおもっていましたが "0"が入力されており、空白ではなく条件付で「"0"なら白」になっていました。 VLOOKの元シートは空白なのですがセルA1にひっぱってきたときに"0"となっているようです。 元シートから変更すればよいのでしょうか?

関連するQ&A

  • EXCEL 数式が入った空白セルを数える

    毎度お世話になっています。 質問の内容ですが、例えば下記のようなシートがあるとします。 セルB1、セルC1、セルD1:手入力セル セルA1:数式「=IF(B1="","",B1+C1)」 セルA2:文字列 セルA3:数式「=IF(D1="","",D1*0.1)」 セルA4:文字列 セルA5:A1+A3の計算結果を表示 (※なお、セルA2、A4は数値が入らない) というような場合において、 ●セルB1、C1、D1になにも入力されていない場合、セルA5が空白となる。 ●セルB1、C1にのみ数値が入力されている場合、セルA5の計算結果がセルA1の値のみ。 ●セルD1にのみ数値が入力されている場合も上記と同様に計算結果が表示される。 以上の条件を満たす数式をセルA5に入力したいのですが、 COUNTBLANKは数式が入っている場合には使えず、COUNTAの場合だとセルA1、A3のどちらにも数値が入った場合に表示される、といった数式になります。 IFをいくつも使えば可能とは思いますが、もう少し単純に数式を作れたらと思い質問をさせて頂きました。 よろしければ御回答宜しくお願い致します。 (内容を訂正したため、いったん質問を削除しました。もし御回答中の方が居ましたら申し訳ありませんでした。)

  • エクセルの空白セルにリンクする別シートにゼロと表示

    エクセル2010を使用しています。 ひとつのシート(1)のセルが空白になっている場合に別のシート(2)でリンクしているセルにはゼロを表示したいのですが、どうもシート(1)のセルに関数(IFやVLOOKUP)が入力されているのでうまくシート(2)のセルに「0」と表示されません。 関数がないセルを指定すると「0」になります。 シート(2)のセルに「=IF(シート(1), "" ,0,シート(1))」のように強制的にゼロを表示させることもやってみましたが、表示はされますがその結果がグラフなどに反映するように設定してあるので、最終的にはこのやり方では全体的にうまく作動しません。 ですので、関数が入っているセルで空白になっている場合でも、自動的にゼロが反映されるやり方はあるでしょうか? よろしくお願いします。

  • セルの内容を別のシートのセルに呼び出す。

    Sheet1のあるセルを「セルの書式設定」の表示形式の「ユーザー定義」で [=1]"○";[=2]"◎";"有"  と設定し、  1や2や3で「○」 「◎」 「有」 を呼び出すように定義し、 1を入力すると○、2を入力すると◎・・・ が問題なく返って来ているのを確認した上で、 =IF(ISERROR(VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE)),"",IF(VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE)=0,"",VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE))) 以上のような式を入れて、そのセルの内容をSheet2のセルに呼び出したところ、 帰って来た値が「○」 「◎」 「有」ではなく、入力した1,2、3しか返って来ません。 解決方法があれば、どなたかご教授願えないでしょうか。 よろしく、お願い致します。

  • エクセルとセルの比較について

    エクセルとセルの比較について エクセル2007で二枚のシートを以下のように作成しました。 シート1   A 1   ←全くの未入力の空白セルです 2 3 シート2   A 1   ←未入力で空白セルですが、数式(if関数とISERROR関数)が入っています。 2 3 ここでしたい処理は、二枚のシートをIF関数で調べて正誤チェックをして、相違するセルに×を表示したいです。 ただ、A1セルに  if(シート1A1=シート2A1,"","×")  の数式をいれると、両者は違うセルとして認識してしまいます。 同じ空白セルなのにどうしてでしょうか。 また、この二つのセルはともに空白なので、同じものとして処理する方法はあるのでしょうか。 お願いします。

  • エクセルで、「引数」が未入力の場合に「0」を表示しないようにしたいのですが…

    「エクセル2000」で、「Sheet2」のセルに入力したものを 「Sheet1」に引っ張ってこようと、 「=Sheet2!A1」と、いうような関数を入れているのですが、 これだと「Sheet2」に何も入力されていない場合 「Sheet1」には「0」と表示されてしまいますよね? それを、 「Sheet2に何も入力されていない場合は セルを空白にする」 という指示を与えて「0」を表示しないようにしたいのですが、 どうすれば良いのでしょうか? 確か「IF」を使って出来たような気がするのですが、 思い出せません(^-^;)。 よろしくお願いします。

  • エクセル 0表示を空白にする(自動で)

    エクセルでセルに数式を入れています。計算する必要がないセルについては「0」が表示されているのですが、表示させない方法を教えて下さい。 詳しく書くと   A  B  1 100  105(A1*1.05) 2 空白 空白(但し計算式は入っている) 3 200  210(A3*1.05) Bには隣のA*1.05という数式が入っています。 A1とA3に数値を入力した場合、上記のようにしたいのですが、A2が空白だとB2に「0」が入ってしまいます。 他のファイルで同じような計算式を作成したとき、参照セルAが空白だとBも空白になっていました。ただし、Bにはちゃんと計算式が入っていてAに数値を入力するとBに答えが入ります。 特に意識せず作ったらこのようになっていたのです。 どうにかして同じようにしたいのですが、見比べても全然分からずギブアップです。。。 どなたかご教授ください。

  • VLOOKUPでエラー表示と0表示を無くしたい

    VLOOKUPで下の条件にあった数式を作りたいのですが、うまくいきません。 条件は (1)参照先のセルが数値のため0が表示されるが、0と空白は区別したいので、戻り値が空白の場合は0を表示させない。 (2)参照元のシートには参照先には無いコードがあるので、エラー(#N/A)が出てしまうがエラーも表示させない。 作ってみた数式は =IF(OR(VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE)="",ISERROR(VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE))),"",VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE)) です。 戻り値が空白、またはエラーの時に参照先のセルが空白になるように作ったつもりですが、どうしてもエラー(#N/A)が出てしまいます。 どなたかアドバイスいただければ嬉しいです。 よろしくお願いいたします。

  • 【画像あり】空白セルorゼロを、空白表示にするには

    タイトルの件、下記の画像にて説明します。 エクセルで、下記の条件があります。 Sheet2のA1セルに、【=Sheet1!A1】の数式が入っています。 Sheet1のA1セルに数時を入力すると、Sheet2のA1セルに、数字が反映されます。 例1:Sheet1のA1セルに、 1 と入力⇒Sheet2のA1セルに 1 と表示される 例2:Sheet1のA1セルに、 0 と入力⇒Sheet2のA1セルに  0 と表示される 例3:Sheet1のA1セルが、空白 だと⇒Sheet2のA1セルに 0 と表示される 上記、例2、例3の場合に、 0 の表示ではなく、空白【ブランク】を表示をさせたい というのが質問です。 下記の画像の、一番右下が、成功表示例です。 ご存知の方、いらっしゃいましたら、よろしくお願いします。

  • excelで、見かけ上空白のセルが・・・

    a2のセルが1または空白の時に、b2のセルに空白を返したい時に、 =if(a2>1,a$1,"") という数式を入れると、 見かけ上は空白なのに、 1.きちんと空白を返す場合 2.a$1の値が入ってしまう場合 があります。 2.の場合でも、a2のセルをdeleteすると空白が返るのですが、 いちいちdeleteするのは手間ですし、(※a2に該当するセルは山ほどあります。) 間違って数字が入っているセルまで消してしまいそうなので困っています。 よいお知恵を貸して下さい。 よろしくお願いします。

  • EXELで任意のセルのみ数式表示したい

    計算式の入ったワークシートで、ある特定のセルのみ計算値ではなく、 入力された式を表示したいのですが、できるのでしょうか? A1に+3+5と入力したら、A1の表示は+3+5で、 B1にA1*3と入力したら24となるようにしたいのです。 (A1はあくまでも数値で8という値を持ったまま、表示のみを式にしたい) lOTUSではセル表示を「式」にすれば簡単にできたのですが、Excelでのやり方がわかりません。 ・ツール→オプション→数式では、ワークシートすべてが式になってしまいます。 ・数式表示関数もあるようですが、それだと表示セルが別になってしまいます。

専門家に質問してみよう