• ベストアンサー

Excelで、数値データとして参照したいのに、文字列データとしてしか参照してくれません

Excelで、ある数式セルに表示されたデータを、数値データとして参照したいのですが、どうやっても文字列データとしてしか認識してくれません。 具体的に書くと、 例えばセルA1に、FIND関数で他のセルから抜き出した半角数字のみのデータを表示しているとします。 そのA1の数値を、今度はセルA2で、 if(A1=1000,A1*2,A1/2) などと数式で参照したい時に、私のExcel(2002です)では、どうやってもA1=1000という条件式をきちんと判別してくれません。どうやら、FIND関数で抜き出したために文字列データとして扱われてしまっているようです。 その証拠に、A1が実際に「1000」の時に if(A1="1000",A1*2,A1/2) という風に1000をダブルクォーテーションで囲んで式を書くと、きちんとA1*2を実行してくれます(つまり、A1が実際に1000の時でも条件式の1000をダブルクォーテーションで囲まないと、きちんと判別してくれないという事です)。 この状態から抜け出せずに、どうにも困っています。 どうにかA1の「1000」というデータを文字列でなく数値データとして条件式で利用できるように出来ないものでしょうか。 乱文ですみませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

数字だけの文字列を数値にするにはValue()を使います。

garibar2
質問者

お礼

ご回答ありがとうございます。 まさに知りたかった関数はこれでした! 本当にありがとうございました。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

=IF(A1-1000,A1/2,A1*2) で如何かと?

garibar2
質問者

お礼

ご回答ありがとうございました。

回答No.3

A1の書式が「文字列」になっていませんか? 書式->セル->表示形式 で確認してみては? はずしてたらすみません。

garibar2
質問者

お礼

ご回答ありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

例えば、=FIND(・・・)*1又は、=IF(A1*1=1000,A1*2,A1/2)で如何でしょうか。

garibar2
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • Excelに、ダブルクォーテーションで始まる文字列を貼り付けると、ダブルクォーテーションが消えること

    Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに ダブルクォーテーションが消えるのですが、 Excelってもともと(標凖的な動作として)そういうものですか。 (F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、 私はセルを選択して貼り付けただけでも大丈夫だと思っていました。 「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。 「ダブルクォーテーションで始まる文字列」と言っても、 ダブルクォーテーションが3つ以上あったときに消えるのは、最初の1組(2つ)ですね。 しかし、 "AAAA"""BBBB のような場合には、なぜか AAAA"BBBB になるのです。 (ちなみに、この文字列を、質問直前の質問内容確認の画面(IE)でコピーしてExcelに貼り付けたときは、違います。) どのような規則に基づいてダブルクォーテーションが消えるのかも疑問です。 このような仕様になっている理由はなんでしょうか。 また、Excelに文字列を貼り付けるという操作を頻繁に行うため、 できれば、編集状態にしなくても、 セルを選択して貼り付けするだけで、そのままダブルクォーテーションも貼り付いてほしいのですが、 そのためにはどうすればよいのでしょうか。 「セルの書式設定」で、表示形式を文字列にすればよいと思ったのですが、だめでした。 セルには文字列を入れるだけで、数式を入れたりしません。 (数式としては扱ってほしくない、という意味です。) Excelは2000です。

  • Excel 数値を文字列にしたい

    お世話になります。 例えば、型番として  0001  0001A  0001B  0002   ・   ・ というものがあった場合、0001と0002は数値と認識されて1と2に なってしまいます。 この状態で、セルの書式設定で文字列にしたとしても、現状の1が 文字列になるだけです(要するに手遅れ)。 また、頭にシングルクォーテーションをくっつけて'0001や'0002と 入力してやればよいかと思うのですが、上記のようなケースが 数百行あった場合、ひとつずつシングルクォーテーションを くっつけていくには手間がかかります。 何かよい方法はございますでしょうか。 ご教示の程、宜しくお願い致します。

  • Excelの条件付き書式、直接入力と参照した数値は違う?

    Excelの条件付き書式、直接入力と参照した数値は違う? Sheet1のA1セルの数値を Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。 数値に、「%以上」という文字列を追加したいので、 Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。 Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。 ・・・ここまでは簡単にできました。 さらに、数値が表示されたときにセルの色を赤くしようと、 条件付き書式で、 「セルの値が 次の値以上 0」 と設定したのですが、入力が無くても赤いままになってしまいます。 設定を、 「セルの値が 次の値以上 ="0"」とか、 「セルの値が 次の値より大きい 0」とか、 いろいろとやってみましたがどうしてもうまくいきません。 参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、 これはたぶん、私が根本的なことをわかっていないのだと思います。 ご教授頂けましたら助かります。

  • EXCELにて$A1(絶対列参照)の行のみ変えたい

    $A1(絶対列参照)で列を固定し行の数字のみをある一定の数値加算で変えてデーターを取り出していきたいのですが、どうすればいいのでしょうか? 間違った数式ですが、こんな感じにしたいのですが $A1+7($A8にしたい)これを下の行にコピペしていき、+7行目ずつセル枠を($A15、$A22、$A29・・・・)移動させてセルのデーターを取り出していきたいと考えてます。 画像参照 よろしくお願いします。

  • Excelで数値を文字列にした時

    例えば0001の前に「’」をつけると、0001って文字列になりますよね。 で、A1に「0001」って表示されて、オートフィルを使ってドラッグすると A2以降に0002~の番号がふられます。(今回はA1:A10に0001~0010まで ふっているということで) で、この0001とか0002って文字列のはずですよね。 なのにB1のセルに=A1+A2にするとちゃんと「3」て出てくるんですよ。 でも、COUNT関数でA1:A10を指定すると「0」が表示され、COUNTA関数で A1:A10を指定すると「10」が表示されてるってことはやっぱA1:A10のデータ は文字列ですよね。 他にもフィルタオプションで「>=’0005」(シングルクォーテーションは半角) とかって指定してもちゃんと抽出されたりと、 この「’」をつけるというのは数値を完全に文字列にしているのでしょか? ご存知の方教えてください。

  • Excel数式:特定文字列を含むセルの数値抽出合計

    http://okwave.jp/qa/q7334751.html 前回似た質問をさせていただきましたが、不足している条件や求める数式がありました。 標題のExcel数式を求めています。 例) A1 [2] A2 4 A3 (空白) A5 [10] 式A(A1:A5): 12 条件や環境を並べますと ▽配列数式等を使用し、作業セルやVBAを使わない方法である。 ○Excel2007を使用。 ○合計数式に指定するセル範囲には、空白セルや数値セル、特定文字列と数字を含むセルがある。 ○特定文字列は"["と"]"を数字を挟むように使用したいが、良い代替案があれば変更可なので歓迎する。 式Aが今回の目標です。 あいまいな条件等があればご指摘お願いします。 どうぞよろしくお願いいたします。 追記:式Aと共存できる他の特定文字列を条件(@数字など)とする式A式Bもあればかっこいいです。(これは髙望みしすぎ、知りたいだけ)

  • 文字列検索の参照文字列の指定について

    Excelでセルに任意の文字列をペーストします。そのセルは別のブックにリンクしているのでペーストする度にリンク先のセルでは文字列が更新されます。リンク先のブックにはワークシートが10あっていづれかのシートのA列にその文字列がある事になっています。更新された文字列を検索する作業を繰り返すのでマクロで組み込もうと思ったのですがFIND関数にしても、VBでCell.Find(What:=....と書くにも参照する文字列を直接指定してやらないと動きません。参照する文字列が相対的に変化するので「特定のセルの中に入力された文字列」を参照してブック内を検索したいということなのですが、実現するにはどうしたらようでしょうか?

  • エクセルの計算式(文字列の参照)のことで困っています。

    エクセルの計算式(文字列の参照)のことで困っています。 基礎的なことと思えるのですが、 セルA1:文字・・・値:TEST セルB1:=A1 最初は、B1の表示が TEST となるのですが、 B1をダブルクリックすると =A1 のように表示され、 文字列として扱われてしまうようです。 常にA1の内容を表示するようにするにはどうしたらよいでしょうか。

  • 【Excel】同じセルに文字列と参照先の数値を・・

    同じセルに文字列と参照先の数値を入れる方法はありますか? 例えば、「山田花子」という文字列だけのセルがあるとして この文字列の横に、参照先の数値を入れ 「山田花子25」のように同居させたいです。

  • 最下行にある数値または文字列を返す数式で困っています

       A   B 1  10   (=" ") 2  ×   (=" ") 3  17   (=" ") 4  28 5  × 6  (=B1) 7  (=B2) 8  (=B3) のように、A列に数値や文字列が入力されています。 A6以降は他のセルに入力されたものがこれから入力されます。 (A6以降は、見た目は空欄です) A列で数値であろうと文字列であろうと、とにかく見た目の最下行のセル に入力されている数値または文字列を返すにはどういう数式を使えば良いでしょうか? (上の例では、A5の×を返したいのです) =INDEX(A:A, MAX( IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)), IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1)))) では、A8(見た目は空欄)が返ってきてしまいますし、 =LOOKUP(10^5,I:I) では、A4の28が返ってきてしまいます。 どなたかご教授ください。 よろしくお願いします。

専門家に質問してみよう