Excel2007の関数VALUEについて

このQ&Aのポイント
  • Excel2007の関数VALUEは、文字列を数値に変換する際に使用します。
  • 関数VALUEを使う場合、文字列の最初が数字ではない場合や、数値に変換できない文字列を渡すとエラーメッセージが表示されます。
  • 問題でVALUEが使われるのは、注文CDの一部を別のシートで参照する際に、数値として扱いたい部分がある場合です。ただし、注文CDの一部の一部を数値として扱いたくない場合は、VALUEを使用しないようにします。
回答を見る
  • ベストアンサー

関数VALUEを使うとき

Excel2007の関数 VALUEについて  CS(コンピュータサービス技能評価試験) のExcel2級を受験しようと思っています。   問題の中に注文CDがあります。そのCDの一部を使って、別sheetのリストを参照し、 氏名や単価エリアなどを求めていきます。   例 注文CD   7-00010C        ★一番左の「7」のみ使うとき  =VLOOKUP(VALUE(LEFT(B6,1)),送料,2,FALSE)というように  VALUEを使っています。   ★真ん中の「00010」を使うとき  =VLOOKUP(VALUE(MID(B6,3,5)),名簿,2,FALSE)というように VALUEを使っています。        ★右の「C」のみを使うとき =IF(RIGHT(B6,1)="C","クレジット","商品代引")というようにVALUEを使っていません。  この問題のときにLEFT MIDのときにVALUEを使用しないとエラーメッセージが出ます。 また、RIGHTのときにVALUEを使用するとエラーメッセージが出ます。 VALUEを使用する場合と使用しない場合の決まりがよくわかりません教えてください。

  • onft
  • お礼率26% (16/60)

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

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

  7-00010C・・・これは文字です、数値ではありません LEFT(B6,1)で「7」が抽出されますがまだ「文字」ですvalueで文字を数値に変換してます。 「C」を使うときは「C」が文字なのでそのまま使えます。  

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

次の3つの事を理解しておく必要があります。 1.VALUE関数は数字で書かれた文字を数値に変えること 2.VLOOKUP関数は,数値の「7」と数字で書かれた文字の「"7"」を区別すること 3.MID関数やLEFT関数の計算結果は文字列になること つまりLEFT関数やMID関数で7や0010を切り出しただけでは,まだ「数字で書かれた文字」の"7"や"0010"の状態です。 そして検索対象範囲の表の左端列には「数値で」7や10を記入し作成していた場合,その中を「文字の"7"」をVLOOKUPで検索しても,見つからない#N/Aの結果になります。 検索対象範囲の表の左端列に数値で7や10を記入していた場合は,VALUE(LEFT(B6,1))のように文字列の"7"から数値の7に計算し直して検索することで,ようやく正しい答えを見つけてくることができるようになります。 また言わずもがなですが,VALUE関数は「数字で書かれた文字を数値にする」関数ですから,数字ではない「C」にVALUE関数をあてがっても全くナンセンスです。 #少し前に全く同じ内容のご相談投稿がありましたので,ご参考に。 http://okwave.jp/qa/q6425281.html

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

VALUE関数の意味は調べましたか? VALUE関数 VALUE関数は数値を表す文字列(日付・時刻など)を数値に変換します。 数値として認識できない文字列を指定した場合はエラー値#VALUE!が返されます。 問題の場合、数値として取り出したいときと、そのまま文字として使う場合で使用するかしないかを決めています。

関連するQ&A

  •    【VALUE関数】について

    例えば、C7のセルに【30005#10】がセルの中の左側にあるします。 この#の前の引数を抽出したい時には、 CHOOSE関数を使うと⇒CHOOSE(LEFT(C7,1),"◎","○","丸")となりますが VLOOKUP関数を使うと⇒VLOOKUP(VALUE(LEFT(C7,5)),記号集,2,0)になります。 これはなぜでしょう? 私は、セルの左にあるから【VALUE関数】を使えば良いと思っていましたが、どうやら違う様です。 この【VALUE関数】の見分け方と、このような時は【VALUE関数】を使えば良い というアドバイスを頂ければありがたいです。 年始早々すみません。

  • エクセル2003 VALUE関数

    VALUE関数は、文字として表された数字を数値に変換するということですが、 意味が分かりません。。。。 解答の式が下記です。 =VLOOKUP(VALUE(LEFT(B7,4)),レンタル,2,FALSE) B7のセルには、3005C40 が入っています。 VLOOKUPで参照するリストに 商品ID  商品名 3005   とちおとめ    がはいってます。 3005C40は、文字として表されたものでは ないと思うのですがなぜVALUEを使わなくていけないのでしょうか。 また別の表を見ると 1266P#2 右記のものを参照してますが VALUE 関数は使われていません。 何をみて、VALUE関数を使うかどうか決めるのでしょうか。 訳の分からない質問だと思いますが。。。 教えてください。どうぞ宜しくお願いします。

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

    エクセル2003使用してます。 (現在の表内容) A2:D7 商品名を記入する表があります。 F2 VLOOKUP(A2,A13:B20,2,FALSE) G2 VLOOKUP(B2,A13:B20,2,FALSE) H2 VLOOKUP(C2,A13:B20,2,FALSE) I2 VLOOKUP(D2,A13:B20,2,FALSE) J2 SUM(F2:I2) A13:B20 単価表があります。 (行いたい事) (例)F2の場合 F2に、A2:D2に書かれている、商品単価の合計を一括で、出したいです。 画像に内容を書きましたので、見て頂けませんか? お分かりになられる方、おられましたら教えて頂けませんか? よろしくお願いします。

  • 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)))】~ 数値を表示したいのですが解決方法を教えてください。 回答よろしくお願いします。

  • VBAで関数の埋め込みをしていますが何度やってもエラーになってしまいま

    VBAで関数の埋め込みをしていますが何度やってもエラーになってしまいます。 以下の関数の場合、どのように式を分けて埋め込めば良いのでしょうか? Cells(11, 7).Formula = ”=IF(ISERROR(VLOOKUP(E11,製品マスタ!B$2:C$240,2,FALSE)),"",VLOOKUP(E11,製品マスタ!B$2:C$240,2,FALSE))"

  • VLOOKUP関数が#N/Aで使えません

    こんにちは。 エクセルで表を作っています。 VLOOKUP関数を使いたいのですが、エラー#N/Aが出て使えません。とてもシンプルな式なのに、何がだめでできないのか全く解かりません。 式は、=VLOOKUP(C3&D3,A7:D12,4,FALSE)です。 ちなみに、=VLOOKUP(C2,B7:D12,3,FALSE)にはちゃんと反応して数値を返してくれます。違いは検索値だけなのですが、数字になっているので、文字列に指定もしました。違うセルで=C3&D3は返してくれています。 何がいけなくてできないのか、教えていただけると助かります。 よろしくお願いします。

  • エクセルのVLOOKUP関数について教えてください。

    エクセルのVLOOKUP関数について教えてください。 まずは、添付画像を参照下さい。 元データ(B2:D6)に対し、C10でVLOOKUP関数を以下の通り使用しました。 =VLOOKUP(B10,B2:D6,2,FALSE) この場合、新品番57010に対し、旧品番が3パターンありますが、VLOOKUP を使用すると、その3パターンのうちいずれか(数値の小さいもの?)を勝手に 選択してしまうため、困っています。 このような一つの対象に対し、複数の対象が一致するものについては、 エラーの出るようにしたいのです。(作業上のミスを防ぐため) そういったことは可能でしょうか。 あるいは関数の特性上仕方のないことなのでしょうか。 説明下手ですみませんが、よろしくお願いします。

  • VLOOKUP関数の範囲がずれてしまう

    VLOOKUP関数を使用していますが、 たとえばVLOOKUP(B10,A1:B8,2,FALSE)の式を下にドラッグしてコピーしていくとVLOOKUP(B11,A2:B9,2,FALSE) VLOOKUP(B12,A3:B10,2,FALSE)という様に範囲がA1からA2、A3とずれていってしまいます。検索のB10がB11、B12と成るのはいいのですが、範囲は、固定にならないと式をコピーできないように思うのですが誰か分かる方教えてください。

  • EXCELの関数に付いて

    FOM出版のMOS.EXCEL2003Expertで「データの整理と分析」タスク2のlesson2の問題を正答どうりの関数を入力してもエラーになってしまいます。入力関数は「=IF(B18='''','''',VLOOKUP(B18,H18:J29,2FALSE))」で、''''の所がエラーのようです。なぜ正答どうり入力しているのにエラーになってしまうのですか?お詳しい方ご教授お願いします。

  • エクセルのTEXT関数の使い方

    例えば、"19880701"というような数値を"1988/07/01"というような日付形式に変換したいのですが、そのためにTEXT関数をあえて使用するとすれば、どのような書き方になるのでしょうか?一応「=TEXT(D2,"yyyy/mm/dd")」と書いたのですが、"#VALUE!"というエラーが出てしまいます。どうすればよいでしょうか?ちなみにLEFT関数やMID関数は使わないとします。

専門家に質問してみよう