• ベストアンサー

エクセルVlookup~&””の結果が数値にならず

=IF(ISERROR(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)),"",VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)&"") このような式です。 返された数字はなぜか左寄せになっています。 書式設定を見ると通貨になっており、カンマ入り数値にしても 右寄せになるだけでカンマが入りません。 どうしたらカンマ入り数値になるでしょうか。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 それは VLOOKUP関数の後に &"" が付いている事によって、VLOOKUP関数の検索結果を、文字列にしてしまっているからです。 VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE) の検索結果が仮に 1000 という数値であった場合、 1000&"" の結果は、「1」という文字(数値ではなく文字)の後に「0」という文字が3個続いている文字列になっている訳です。  文字列は数値ではありませんから、カンマや円マークが付かないのは当然です。  ですから、その関数を次の様にされると良いと思います。 =IF(ISERROR(1/(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)<>"")),"",VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE))  Excelでは判定結果が正しい事を表しているTRUEは数値の1と同じものとして扱われる一方、判定結果が誤りである事を表しているFALSEは数値の0として扱われます。  つまり、 VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE) の検索により空欄のセルを参照した場合(御質問文の関数の例の場合、検索範囲の1列目のセルを参照する事になりますから、検索結果は必ず「検索値」そのものとなりますから、参照先が空欄となる事などあり得ませんが)、 VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)<>"" の判定結果はFALSEとなり、FALSEは0と同義なのですから、 1/(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)<>"") という関数は 1/0 という事になりますので、検索結果が空欄の時には、 1/(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)<>"") はエラーとなるため、ISERROR関数の結果がTRUEとなり、表示される値はIF関数における、「判定結果が正しい場合の戻り値」である "" となる訳です。

mmmtter
質問者

お礼

わかりやすい説明有り難うございました! 意図していたとおりになりました!!

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答No.2様が仰っておられるIFERROR関数はExcelのバージョンがExcel2007以降(Excel2007も含む)のものでしか使う事の出来ない関数です。  それに対し、VLOOKUP関数はどのバージョンから使えるようになったのか私は知りませんが、少なくともExcel97の頃には既に使用可能となっていた関数です。  ですから、「vlookup関数使えるならiferrorも使えるバージョン」であるとは限りませんので、もしIFERROR関数を使うのでしたら、Excelのバージョンを確認される事を御勧め致します。

回答No.2

一番最後に「&""」があるので、文字列扱いにしている為でしょう。 上記を削除すれば良い。 「&""」を加えている意図がわかりませんけど、どうしても付けるならば =value(IF(ISERROR以下同じ) とすれば、数値扱いになり右寄せになります。 あとは数式のセルの書式設定してください。 ついでに、=iferror(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE),"") ・・・の方がさっぱりすると思いますけど。 vlookup関数使えるならiferrorも使えるバージョンだと思います。

関連するQ&A

  • VLOOK &””で返された数字が数値にならない

    VLOOKでエラーと計算結果0の両方を空白で表示したいために IF(ISERORR(VLOOK****)&"")という式を使っていますが 返された数値が左寄せになってしまいます。 書式設定でカンマ入り数値にしても、右寄せになるだけでカンマが入りません。 どうしたらカンマ入り数値になるでしょうか。

  • 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!が表示されます。 何がいけないのでしょうか?

  • OpenOffice 【Calc】 複数シート VLOOKUPについて

    シート1、データ1、データ2、データ3 の4シートがあります。 データ1のシートには、    品名   価格  売価 1 雑炊の素   800   500 2 焼飯の素   700   350 3  柿の種    280    200 データ2のシートには、    品名   価格  売価 101 うどん   380   350 102 そば    380   350 103 そうめん  350   320 のようにして、シート3は201~始るようにデータが入っています。 それぞれのシートの検索範囲にLIST1、LIST2、LIST3 と名前を付けて、シート1のB20セルに =IF(ISERROR(VLOOKUP($B20;LIST;2));"";VLOOKUP($B20;LIST;2))&IF(ISERROR(VLOOKUP($B20;LIST2;2));"";VLOOKUP($B20;LIST2;2))&IF(ISERROR(VLOOKUP($B20;LIST3;2));"";VLOOKUP($B20;LIST3;2)) と関数をいれてみたところ、動作は正しくできているのですが、 価格などの数値をVLOOKUPしてくると、文字列の扱いになる様子で、 1,000 とはならず、1000 で表示されてしまいます。 書式設定で数値、カンマ区切りを選択してみても変わらず。 使う関数が悪いのか、その他に問題があるのか判らず、悩んでいます。 適正な関数または、設定が判る方、教えてください。

  • エクセルのVLOOKUPの複数参照について

    エクセルのVLOOKUPの複数参照について シート2(kokunai)に A列 B列 1000 シャープ 1010 ソニー 3050 パナソニック とあります。 シート3(yunyuu)に A列 B列 2000 IBM 2001 HP とあります。 シート1のC列に打ち込んだ数字を元にD列にメーカー名を表示したいのです。 D列に IF(C1="","",IF(ISERROR(VLOOKUP(C1,kokunai,1,0))="FALSE",VLOOKUP(C1,kokunai,2,0),VLOOKUP(C1,yunyuu,2,0))) と数式を打ちましたが、エラーが帰って来ます。 どうすれば良いでしょうか?

  • エクセル vlookup

    エクセル vlookup 日付検索について。 あ 7/9  500 い 8/9  300   というシート1があり シート2で 月別の集計をしたいです。 ↓ 7月 あ  500 8月 い  300 この時の7月集計の数式は  =VLOOKUP("*/7/*",'シート2'!A1:D30,1,FALSE) 書式を日付にしても#N/Aがでてしまいます。

  • vlookupの応用について

    vlookupの応用について悩んでおります。 EXCELはバージョン2000を使用しております。 IF(ISERROR(vlookup(シートA)),vlookup(シートB),vlookup(シートA))にしたのですが、 vlookupでシートAを2回も検索するため、検索が遅くなってしまいました。 3番目の引数には一番目の引数(vlookupの戻り値)を入れることができれば検索が早くなると思うのですが、 どのように記述すればよろしいのでしょうか?

  • 複数のEXCELファイルより結果検索(VLOOKUP)

    はじめましてご教授お願いいたします。 現在エクセル関数Vlookupを使用しているのですが 外部の複数エクセルファイルよりデータを抽出するには どうすればよろしいのでしょうか? エクセルファイルA,B,C,Dがあるのですが ファイルAには結果表示用のシートがあります B,C,Dにはそれぞれデータが同じように配置されおります。 ファイルAのシート2セルA1に以下のような関数を記述しております =IF(ISBLANK(A2),"",IF(VLOOKUP(A2,Sheet1!$A$2:$K$60000,2,FALSE)=0,"",VLOOKUP(A2,Sheet1!$A$2:$K$60000,2,FALSE))) 上記関数[Sheet1!A2:K60000]の部分に別ファイルB,C,Dの データ(範囲は同じ)も検索できるようにしたいのですが どのような関数で可能なのでしょうか? ご教授よろしくお願いいたします。

  • VLOOKUP関数 エクセル関数教えてください

    =IF(ISERROR(VLOOKUP(B2,$E$1:$F$296,2,FALSE)),"",VLOOKUP(B2,$E$1:$F$296,2,FALSE)) という関数を入れて、品番をセルに入力して元表から品名を導く表を作成しました。うまく使えています。 これを元に =IF(ISERROR(VLOOKUP(B2,$F$1:$I$1000,2,FALSE)),"",VLOOKUP(B2,$F$1:$I$1000,2,FALSE)) という関数に直して、同じような表を作ろうとしたのですが、うまくいきません。 何が悪いのか分かりません。 どうすればうまくいきますでしょうか?

  • Excelで、iserror関数を使用した結果は数値ではないのですか?

    ご質問させていただきます =IF(ISERROR(VLOOKUP(A2,$A$29:$F$40,3,FALSE)),"0",VLOOKUP(A2,$A$29:$F$40,3,FALSE)) という関数を作りました。 この際、エラーが表示される場合に、0に置き換える、という意味で この関数を作ったのですが 表示された 0 は ・表示がセル内で左詰になっている ・条件式書式で「セルの値が 0 のときに フォント色を白」  という条件をつけても、フォント自体は白にならない という2点から、0は数値ではなく文字として認識されている、と自分なりに捉えました。 しかし、疑問に思ったのは、 ・表示された 0 を引用した数式は成り立つ (たとえば、A1の値をIserrorで表示したときに0が出て、A2が2の場合  B1の数式を、 =A1+A2  とすると、2が表示される) ということから、数式を作ると数値として認識される、ということです。 この関数でセルに表示された "0" は、文字として認識されるのでしょうか? それとも数値として認識されるのでしょうか? ちなみに、自分は、0を表示させずに {条件式書式を使用したいと考えています。} さらにそのセルの値をさらに別の数式に反映させたいです。 なので、一番上に表示した数式の "0" の部分を "" にしてしまいたくないのです。(空欄表示の場合は、完全に次の数式に反映できず、このセルの値 {この場合は空欄} を引用した数式の値は #VALUE と表示されました) どなたか詳しい方、ご回答よろしくお願いいたします。

  • Excelで計算結果が違う(VLOOKUP)

    ある表があるのですが、 同じ数値になるはずの計算結果が同じ数値にならず、違うのです。 少しわかりづらいとは思いますが、 心当たりのある方はご教授お願いします。 ↓こんな表があります。↓    A     B      C 1  計算   量     単価 2  数値1   0     399 3  数値2   1     399 4  計算1   2     399 5  計算2   3     399 6         4     399 7         5     399 8         6     399 9         7     399 10        8     399 11        9     399 12       10     399 13       11     388 数値1に「11」と入れて、数値2に「0」と入れて下さい。 計算1には「=A1-A2」と入れて下さい。 計算2には「=VLOOKUP(A4,B2:C122,2,1)」と入れて下さい。 入れ終わると、計算1には「11」と、計算2には「388」と、出るはずです。 この表は、数値1から数値2を引いて出た数値を VLOOKUPで「量」と照合して「単価」を持ってくる。という表です。 次に、計算1と計算2は変えずに、 数値1に「72.6」と入れて、数値2に「61.6」と入れて下さい。 これは先ほどやった数値1(11)-数値2(0)と同じ計算結果になるはずです。 しかし、数値を入力してみると、計算2には「399」と出てしまうのです。 ここで悩んでおります。 VLOOKUPの検索の型は、小数点以下での照合があるため、「TRUE」にしてあります。 「FALSE」にすると、#N/Aエラーになります。(11-0は11と出ます) これはExcel(VLOOKUP)のバグなのでしょうか? 私には原因不明です。この表は仕事で使う表で、私が作ったものです。 普段の仕事で使うため、なるべく早く回答を頂きたいと思っております。

専門家に質問してみよう