Excelセルに数式があるか、ハードコードされているかを確認する方法は?


17

セルに値がハードコーディングされているか、派生した式であるかを体系的に伝えるための特別なヒント(VBA以外を強く推奨)がありますか?

乱雑な小計が埋め込まれているいくつかのデータを扱っており、生の行を分離できるかどうかを確認しようとしています。


「数式の表示」モード(Ctrl + `)は役立ちますか?
sblair

それはしますが、私はそれを「体系的」とは思わないでしょう-小計線を手で吹き飛ばす必要があります。
YGA

回答:


8

条件付き書式を使用します。「数式を使用してフォーマットするセルを決定する」オプションを選択し、「= NOT(Cellhasformula)」と入力します。これにより、ハードコーディングされたものはすべてフォーマットされます。


8
したがって、これは完全な答えではありませんでしたが、実際には非常にエレガントです。完全な答えは次のとおりです。j-walk.com / ss / excel / usertips / tip045.htm 重要なのは、「参照する」「Cellhasformula」と呼ばれる(Formulas-> Name Managerを介して)名前を最初に作成する必要があるということです。神秘的な数式= GET.CELL(48、INDIRECT( "rc"、FALSE))。リンクにあるように、式はGET.CELLを使用します。これはXLMマクロ言語(VBAの前身)であり、ワークシートで直接使用することはできません。「48」引数は、セルに数式がある場合、GET.CELLが「True」を返すようにします。INDIRECTは基本的に、選択された範囲内の各セルへの参照を作成します。
YGA

これらの詳細を含めるように回答を編集しました。ありがとう@YGA
アラン

15

問題のセルを選択し、Ctrl+ Gを押してから、選択Specialして次のダイアログボックスを表示します。

特別なダイアログボックスに移動

次に、目的のセルのタイプを指定してクリックするOKと、それらのタイプのセルのみが選択されたままになります。



3
=iferror(Formulatext(cell),"Not Formula")

または、式のみを表示するには:

=iferror(Formulatext(cell),"")

Excelの代わりにLibreOffice Calcを使用している場合は、formulatext()をformula()に置き換えてください。
fixer1234

2

他の2つの方法は

  1. 私のMappitなどのマッピングツールを使用してください!アドイン (信頼できるアドインとして実行可能)
  2. ハードコーディングされたセル、数式、リンクされたセルなどをリアルタイムで色付けできる非常に便利なXLM /範囲名の回避策を使用できます。これは、VBAとは異なり、プログラミングの知識を必要としません。


1

Excelファイルをマクロを含まないブック形式で保存する場合は、VBAとマクロの両方を避ける必要があります(つまり、他の回答で提案されているXL4 / XLMアプローチ)。この回答では、マクロを含まないExcelファイルを想定しています。

MS-Excel 2013を使用する場合、次を使用できます。

=ISFORMULA(reference)

古いバージョンのMS-Excel(2010、2007など)を使用している場合、セルに数式が含まれているかどうかを判断するための真の機能はありません。ただし、次を使用して概算できます。

=IF(OR(ISBLANK(reference);CELL("prefix";reference)<>"");FALSE;IF(CELL("type";reference)="l";TRUE;"MAYBE"))

上記の関数は以下を返します。

  • 結果が文字列データになる式を含むセルの場合はTRUE。
  • 文字列リテラルを含む、または空白のセルの場合はFALSE。
  • この値がリテラルまたは数式の結果に関係なく、ブール値、数値または日付を含むセルの場合は「MAYBE」。

1

元の日付をかなり過ぎていますが、それが誰かに役立つ場合は、セルの範囲を選択し、Replace(Ctrl + H)を使用して「Look in」「Formulas」に設定し、等しい=アポストロフィと等しい'=

これにより、すべての式が取り出されましたが、明らかに$ C $ 1 =if($A1=$B1,"Match","Different")'=if($A1'=$B1,"Match","Different")

A1'=B1数式の中央にあることに注意してください。これは問題があるかもしれませんが、まだ実用的ではありませんが、数式を見ることができます。SUBSTITUTE関数を使用して元に戻すことができます。したがって、$ D $ 1にはが含まれ=SUBSTITUTE(C1,"'=","=")、メモ帳にコピーして$ E $ 1に貼り付けます。

もう1つの方法は「数式を表示」することですが、選択した範囲だけでなく、すべてのセルの数式が表示されます。


1
Function is_formula(c As Range) As Boolean
  is_formula = Left(c.Formula, 1) = "="
End Function

ここで何が起こっているのかを簡単に説明していただけますか?:)
ベルティエブ

OPがVBAを必要としていないことに気付きましたが、VBAモジュールに挿入するだけです。しかし、とにかく、それが私が使用する理由です。
ジョージスケルトン

それは本当に説明はありません
bertieb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.