• ベストアンサー

【エクセル】セルの情報

エクセルで、セルの内容が「数値」か、「数式あるいは関数」かを返す関数ないし方法があれば、教えてください。 TYPE, ISTEXTなどのヘルプを見たのですが、そのような機能はないようです。 (同じく「数値」として返されます) 具体的には、 単なる数値の「100」などが入力されていれば「TRUE(FALSE)」を返す、 他のセルからの参照(=A1*A2など)であれば「FALSE(TRUE)」を返す、 というようなことをしたいのですが。

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

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

こんばんは。 VBAなら、HasFormulaプロパティを使えば判定できます。 たとえば検査対象範囲が C2:C30で、結果をD列に表示させるには、 ↓を実行してください。 ----------------------------------------- Sub test() Dim i As Integer For i = 2 To 30 If Cells(i, 3).HasFormula Then Cells(i, 4) = "TRUE" Else Cells(i, 4) = "FALSE" End If Next i End Sub ----------------------------------------- VBAを使わずに判定する方法をネットで探したところ、 ↓のようなやり方がありました。 なぜできるのかはわかりません^^; とりあえずEXCEL2000でも2003でもできました。 ----------------------------------------------- 結果を返したいD2セルをアクティブにして、メニュー〔挿入〕-〔名前〕-〔定義〕   ↓ 「名前」欄に適当な名前を入力(例:formula)   ↓ いちばん下の「参照範囲」欄に次のように入力してOK =GET.CELL(48、!C2)+NOW()*0   ↓ D2セルに =formula と入力して、以下オートフィルでコピー   ↓ C列のセルが数式なら"1"、それ以外なら"0"が返ります。 ------------------------------------------------ ↑はEXCEL4.0マクロだそうです。 ファイルを開くときにはマクロ警告メッセージが表示されます。

gucchi-you
質問者

お礼

ありがとうございます!!!シート内で処理したかったので、2番目の方法でバッチリうまくいきました。私にもなぜできるのかまったく分かりませんが(^^) 感謝、感謝です。

関連するQ&A

  • Excel 入力セル終端のデータを取り出す

    エクセルの列末のデータだけ表示が出来ないでしょうか - Office系ソフト - 教えて!goo http://okwave.jp/qa/q4260158.html 上記の質問ページに、以下の回答がありますが、 どうして実現できるのかわかりません。 ------------ ◆途中に空白があってもいいですよ ★数値の場合(A列最後の行のデータ) =LOOKUP(10^10,A:A) ★文字列の場合(A列最後の行のデータ) =LOOKUP(1,0/(ISTEXT(A:A)),A:A) ★数値・文字列混在の場合(A列最後の行のデータ) =LOOKUP(1,0/(A:A<>""),A:A) ------------ 「LOOKUP」関数はもともと、 「条件にあったセルの値を表示」ですよね? それがなぜ、入力セル終端のセル内容を取り出せるのでしょうか? どなたか詳しい解説をお願いいたします。 ・「10^10」← 10の10乗? ・0/(ISTEXT(A:A)) ← 0 をTRUEかFALSEで割るってどういうこと? ・0/(ISTEXT(A:A)) ← そもそも列に対して「ISTEXT」できるの? ・0/(A:A<>"") ← 0 をTRUEかFALSEで割るってどういうこと?

  • ISBLANK関数で”TRUE"となるようなデータの与え方

    EXCELで、例えば =ISBLANK(A1) としたとき、答えが "TRUE" となるように、A1セルにデータを与える方法を教えて下さい。[Delete]キーと同じ状態を数式、関数で作りたいのです。因みに、=A1 ⇒ 0、ISNUMBER(A1),ISTEXT(A1) ⇒ "FALSE",COUNT(A1) ⇒ 0 となります。="" は ISBLANK(A1) が"FALSE" になります。

  • エクセルの#value!エラーについて質問します。

    エクセルのヘルプには#value!エラーが返る原因のひとつに ・セル参照、数式または関数が配列定数として入力されている とありますが、これはどのような状態なのでしょうか? 具体的に数式で示してください。 他所でも質問したのですが具体的な答えが返ってこなかったので・・・

  • エクセルVBAとワークシート関数が違う答え?

    エクセル2013です。 A1セルからA100セルにすべて1%と入力されています。 BIセルに =SUM(A:A) と数式が入っており、100%と表示されています。 A,B列のセルの書式はすべてパーセテージです。 101行以下には何も入っていません。 C1セルに =B1=1 と数式が入っており、TRUEが表示されています。 標準モジュールに Sub test01() MsgBox Range("B1").Value = 1 End Sub と書きました。 実行したところFalseが帰ってきました。 なぜ、TRUEにならないのでしょうか? なお、 Sub test02() MsgBox Val(Range("B1").Value) = 1 End Sub とすると、TRUEが帰ります。 でも、Val関数はStringを数値化するものですよね? B1セルはもともと数値なのでVal関数で答えが変わるのも不思議です。 どなたか、わかるように教えていただけないでしょうか?

  • Excelの関数で、セルの位置情報を出したい

    VLOOKUP HLOOKUPなどで数値を検索して出したあと、 その数値がどのセルに入っているか表示させる関数は組み立てられるでしょうか? 検索範囲内の端から、1、2。。。って表示されるタイプではなく、 A10とかC5とかで出したいです。 さらに、位置を出したセルから、ひとつ下へ下がったセルの数値を参照したい、ということは出来ませんか? VBAは全く分かりません。 関数で出来ないなら諦めます。。。

  • エクセルで

    エクセルについてお伺いします。例えばセルA1に10%、A2に20%のパーセンテージで入力された値は合計は出せないのでしょうか。SUM関数で出すとエラーが出てしまいます。それと、数式を入力したセルの数値の値の合計も出ないのでしょうか。例えばあるセルに=A1+B1,もう一方のセルにA2+B2と入力されていてそれぞれ数値が5と4とします。合計9を出したいのですが、数式のためSUM関数では合計できません。何か方法はありますか。

  • IF文で空白セル

    勘違いしているのかもしれませんが、 エクセルの数式IF文で、TRUEの時に空白(?)を入力するにはどうしたらよいのでしょうか? 今までは、TRUEのところに "" とダブルクオーテーション二つを入力していたのですが、IF文が入っているセル(TRUE)をISBLANKで参照するとFALSEとなります。 ISBLANKで参照したときに、TRUEとするためには、IF文にどういう風に入力すればよいのでしょうか? うまく説明できませんが、ご教授お願いします。

  • セルA1 と セル A4 の数値を直線にするには?

    セルA1=10 セルA4=40 という数値が入力されている場合、 セルA2とセルA3それぞれにEXCELの関数を入力し、 A1~A4の区間を直線にするには どのような関数があるのでしょうか? 今回の様な数値の場合、 A1=10 A2=20 A3=30 A4=40 と成りますが関数を使用する場合、 A2とA3にはどの様な数式が入るのでしょうか?

  • EXCELで別シートのセルを参照する場合について

    EXCELで別シートのセルを参照したいのですが… 参照先のセルの行が飛び飛びのため、数式をどのようにしたらよいかわからず困っています。入力するセルの数も大量のため、一つ一つ参照入力するには手間がかかりすぎるため、何かしらの関数で対応できないでしょうか。 具体的には シートAのM8~CE8 に、シートBの G50 J50 M50 P50…と3列ごとに参照した数字を返したいのです。 どなたかご教示いただけますと幸いです。 よろしくお願いいたします。

  • セルA1 と セル A4 の数値を直線にするには?

    カテゴリーを間違えてしまいました。こちらで再質問させて下さい。 セルA1=10 セルA4=40 という数値が入力されている場合、 セルA2とセルA3それぞれにEXCELの関数を入力し、 A1~A4の区間を直線にするには どのような関数があるのでしょうか? 今回の様な数値の場合、 A1=10 A2=20 A3=30 A4=40 と成りますがEXCEL関数を使用する場合、 A2とA3にはどの様な数式が入るのでしょうか?

専門家に質問してみよう