• ベストアンサー

関数で&IF分を使うと3桁コンマになりません。

=IF(B5=0,VLOOKUP(V5,表!$A$4:$J$339,3,TRUE),"")&IF(B5=1,VLOOKUP(V5,表!$A$4:$J$339,4,TRUE),"") というような関数を作りました。 セルの書式設定を数値にして桁くぎりにチェックをしても 1250となって1,250と表示してくれません。 どうしてこのような現象が起こるのでしょうか。 宜しくお願いします。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8520/19368)
回答No.1

>どうしてこのような現象が起こるのでしょうか。 出来上がった値を「&演算子で結合している」ので、結果は「文字列」として扱われます。 文字列は「桁区切り」は無効なので、カンマ区切りは付きません。 式を =IF(OR(B5=0,B5=1),VLOOKUP(V5,表!$A$4:$J$339,IF(B5=0,3,4),TRUE),"") のようにすれば、B5が0か1の時は、VLOOKUPの結果「のみ」が返って来るので、桁区切りが有効になる筈です。

sei-mama
質問者

お礼

chie65535さんありがとうございました。 文字列になるから桁区切りが無効になるというのも納得しました。 教えて頂いた関数で問題解決できました。 条件が増えても大丈夫でした。 すごくわかりやすいご回答をありがとうございました。

関連するQ&A

  • IFとVLOOKUP関数を組み合わせて

    IFとVLOOKUP関数を組み合わせて条件に一致させた数値を出したいのですが引数の記述がわかりません具体的にはセルB5の値が2以上10未満の時は4,100を10以上15未満の時は6,500を15以上25未満の時は11,300を25以上35未満の時は16,100を35以上45未満の時は20,900をセルD5に標示させたい時はどんな記述をすればよろしいでしょうか?IF関数VLOOKUP関数を用いて別のセルにこの参照をさせる表(セルA7に2,B7に4,100 A8に10,B8に6,500 A9に15,B9に11,300…)を作成するすればできると思うのですが…

  • 二桁の数値の表示方法?

    A1に数値を入力します。この数値は一桁(2とか4など)の場合と 二桁(10とか17など)の場合があり、この入力値をJ1とK1に (17ならJ1に1、K1に7と分けて、一桁の4場合はJ1空白K1に4) に分けて表示しています。IF(LEN($A$1)>=2,LEFT($A$1,1)," ")と RIGHT($A$1)を使用。 さらにM1でVLOOKUPの検索値に使用しています。 VLOOKUP用の被検索データは他のシートに作成済み。 A1に4を入力するとJ1は空白になります。 ここに0を表示させたいのですが、 A1のセルの書式設定の表示形式を文字列にして、 入力値を04とするとJ1は0を表示しますが、M1が表示されません。(空白になってしまう) A1のセルの書式設定の表示形式をユーザー定義で00にして 入力値を04とするとM1は表示されますが、J1が表示されません。(空白になってしまう) A1に17を入力すれば書式設定の表示形式は 文字列でも標準でもJ1、K1、M1すべて表示されます。 説明が長くなりましたが、A1に一桁の数字(数値?)入力したときに J1とM1が表示できるようにするにはどのようにすればできるのでしょうか。 ちなみに実際使っているものはシートが4つに分かれていて表示に関しては とても複雑になっています。参考に実際使用しているVLOOKUPの セルに入力されている関数はIF(LEN(入力1!$B$8)<=0,"",IF(ISERROR(VLOOKUP(入力1!$B$8&入力1!$C$8,内訳マスタ!$A:$E,4,0)),"",VLOOKUP(入力1!$B$8&入力1!$C$8,内訳マスタ!$A:$E,4,0)))このようなもので、VLOOKUPも二通りのデータ検索と表示をしております。 人に作ってもらったものなので、自分で何とかならないかと二桁入力の仕方とかを調べてみましたが、どうにもなりませんでした。 どなたかお手隙のときで結構ですので、アドバイス頂けますでしょうか。 このような二通りの表示は無理なら、そのようなことをお知らせいただけると幸いです。

  • IF関数とLOOKUP関数の組み合わせについて

    指定したセルと等しい数値(文字列?)をLOOKUP関数を使って別シートのデータベースを検索させて、そのシートに無ければまた別のシートのデータベースを検索させるものを作りたいのですが上手くいきません。 指定したセルが空白なら空白を返すように次のような感じで作っています。 IF(A1="","",IF(LOOKUP(A1,シート1!A1:A15,A1:A15)<>A1,LOOKUP(A1,シート2!A1:A15,B1:B15),LOOKUP(A1,シート1!A1:A15,B1:B15))) VLOOKUP関数でもやってみたのですがこちらも上手くいきません。 IF(A1="","",IF(LOOKUP(A1,シート1!A1:A15,A1:A15)<>A1,VLOOKUP(A1,シート2!A1:B15,2,0),VLOOKUP(A1,シート1!A1:B15,2,0))) ご指摘いただければ嬉しいです。

  • IFとVLOOKUP関数

    VLOOKUP関数を使って検索結果を出そうと思いましたが、 データ量が93000行X8列になりますので、 共通分けして複数のシート(A、B、C、D)に分けました。 あるセルに『A』と入れると『シートA』の表から検索を行う、 あるセルに『B』と入れると『シートB』の表から検索するといった感じにするには、 IFとVLOOKUPを使用するなら、どのような式を入れたらいいのでしょうか? また、他の関数を使う式があるのでしょうか? マクロやVBAも考えましたが、 あまり知識がありません。 データ量から考えると マクロやVBAで行った方がいいのでしょうか?

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

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

    入力セルB1には数値0~9と”ヌル”が入ります。 セルB2でA1+B1の計算 B2の計算条件は、B1が””の時””が出力 B1が0(数値のゼロ)の時数値のゼロが出力 B1が1~9の時はA1+B1の演算をさせたいのですが、IF関数でできますか 関数の組み方をお願いします。

  • IF関数で・・ただし・・・

    教えてください。 表があります。セルA1に数値があります。セルA2に他の場所での合計が入ります。A3にA1とA2の小さい方の値が入ります。A3の関数は、MIN(A1,A2)。隣のB3に別の合計数があり、C3にA3+B3の値がきます。 B4に関数で、IF(A3<A1,B3,IF(A3>A1,0))と入れてます。そこで少し問題の場合が出てきたんです。B4に「但しC3がA1より大きくなる場合はA1-A3の値にするという条件」を付け加えたいのです。どうすればいいのでしょうか? 説明もややこしくてすみませんが、よろしくお願いします。

  • エクセルの IF関数、VLOOKUP関数について

    エクセルなんですが、2007を使用しています。OSはビスタです。 IF関数とVLOOKUP関数を使って表を作成したいのですが、なかなか出来ません。。。そこで皆さんのお力をお借りできればと・・・ 特に IF VLOOKUP にこだわる事はないので教えていただけると助かります。 <シート1>       A       B       C     1   日本or東海 2 3   愛知       a 4   岐阜       b 5 データ              日本     東海 7   愛知       a       A 8   岐阜       b       B 9   三重       c       C A1セルに『日本』と入れてもA2のセルは空白なのでB2のセルは空白のまま、 同様にA3のセルには『愛知』と入れたのでデータの日本の下のB7のデータ の『a』を反映させたいんです。 これがA1セルに『東海』と入れた場合は自動的にB3セルは『A』のでーたが 反映されるようにしたいんです。 ちなみにA1セル及びA2~A5はリスト設定をしてあるので、リストから選んだら 自動的に反映させるようB2~B5セルに入れる関数を教えて下さい。 皆さんのお知恵をお借りできれば助かります。よろしくお願いします。

  • if関数で「20分以上経過」にしるしをつけたい

    いつもお世話になっております。 エクセル2003で、以下のように作りましたがif関数がうまく働きません。 B1~AF1に各月1~31日の休憩時間を入力し、B2には遵守しているかの欄にします。 B1が20分を超える場合「×」そうでなければ「○」とB2~AF2に表示したいのです。 A2には基準値として :20:00 を入力しました。 B2には   if(B2>A2,"×","○") を入力しました。 しかしB1が20分未満「:01:00」等の場合でも「×」と表示されてしまいます。 元々B1の休憩時間は別シートからVLOOKUP関数で呼び出す式が入っていたので 関数を消して直接「:01:00」と入力し、セルの書式をユーザー書式「h:mm:ss」にしたり「時刻」にしたり試しましたが「×」のままです。 A2も同様セルの書式を変えましたが同じです。 時間は「h:mm:ss」の状態で、元ファイルから呼び出され、秒単位の表示なので、 B1はできれば10進数は使わずこの表記の状態にしたいと思います。 またA2の基準時間は、手動で60分にすることもあるので、A2のセルも利用できればと思います。 ネットで検索すると「時間は大小比較ができない」とあったのですが、 ここから先どうすればいいか行き詰っています 別の関数を3行目以降に追加しても構いません。 何かいい方法がないでしょうか。 よろしくお願いします。

  • if 関数について

    「もし、セルa1に何かの数値が入力されたら、a1×b1を計算して、その結果を表示せよ」という場合の関数は、=IF(a1="","",a1*b1)だと思います。 この数式を下方のセルにコピーすると=if(a2="","",a2*b2)となってしまいますが、計算式の+a1×b1の部分を変えたくない場合は、どうすればよいのでしょうか? 【この関数式の使用方法】 毎日変動する株価による自分の利益(又は損失)を一覧表にしたい。 a1の数値は、毎日変動する株価です。(だから、コピー結果a2 a3 a4 と変化しても良い。) b1の数値は、自分の所有する株数です。(株の所有数は変わらない) 従って、変動するのは毎日の株価と計算結果だけということになり、自分の所有株数(b1の値)が入力されているセルの場所が変わっては困るのです。 以上、よろしくお願いいたします。