Mandyは、データ範囲を合計し、数式を含むセルのみを合計に含める方法があるかどうか疑問に思います。 Mandyのニーズによると、セルに数式ではなく明示的な値が含まれている場合は、合計に含めるべきではありません。

目的の結果を達成する方法はたくさんありますが、そのうちのいくつかに焦点を当てます。

まず、合計を1回だけ決定する必要があり、ワークシート自体に表示されない場合は、次の手順を実行できます。

。合計するセルを選択します。

。 F5を押します。 Excelに[移動]ダイアログボックスが表示されます。

。 [特別]ボタンをクリックします。 Excelは、[特別に移動]ダイアログボックスを表示します。

。 [数式]ラジオボタンを選択します。

。 [OK]をクリックします。 Excelは、数式を含むセルのみが選択されるように、選択されたセルを変更します。

この時点で、ステータスバー(Excelウィンドウの下部)を見て、選択したセル(数式を含むセル)の合計を確認できます。

数式ベースのアプローチを好む場合、ここでの重要な要素の1つは、使用しているExcelのバージョンになります。 MicrosoftはExcel2013のリリースでISFORMULA関数を導入したため、そのバージョン(またはそれ以降)を使用している場合は、必要な合計を決定するのは非常に簡単です。

次の式を使用してください:

=SUMPRODUCT(A1:A5,--ISFORMULA(A1:A5))

この式は、合計するデータ範囲がA1:A5であることを前提としています。 ISFORMULA関数の前の「二重マイナス」記号は、TRUE値とFALSE値(ISFORMULAによって返される)を1または0に変換するために使用されます。

配列数式を使用する場合は、次の数式を使用できます。

=SUM(IF(ISFORMULA(A1:A6),A1:A6))

Ctrl + Shift + Enterを使用して入力することを忘れないでください。そうすれば、適切な結果が得られます。

Excel 2010より古いバージョンのExcelを使用している場合、これらの数式は機能しません。代わりに、トリックを実行するためにユーザー定義関数に依存する必要があります:

Function SumFormulas(ByVal r As Range)

Dim c As Range     Dim s As Double

s = 0     For Each c In r.Cells              If c.HasFormula And IsNumeric(c) Then             s = s + c.Value         End If     Next c     SumFormulas = s End Function

コードは、セルに数式が含まれていることを確認し(HasFormulaプロパティを使用)、数値であることを確認します(IsNumeric関数を使用)。セルにテキストベースの数式を含めることができ、そのような数式の結果を合計に含めたくないため、両方が必要です。

この関数を使用するには、範囲A1:C7を合計することを想定して、ワークシートのセルで次を使用するだけです。

=SumFormulas(A1:C7)

マクロベースのアプローチは、何らかの理由でISFORMULA関数に依存したくない場合は、Excel2010以降のバージョンのExcelでも機能します。 (たとえば、古いバージョンのExcelとの互換性を確保する必要がある場合。)

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13595)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。