フォーミュラの成分の追加(純額と総額)

フォーミュラの成分の追加(純額と総額)

範囲全体にわたって数式のコンポーネントを追加したいと思います。特定の項目の純キャッシュフローを表示するセクションが 1 つと、複数の特定の項目があります。

たとえば、=8+9-5複数のセルに「12」が表示されます。値がセル レベルで集計されていない場合は、数式を使用してSUMIF正と負のセルのみを追加するのは簡単ですが、セル レベルで集計されているため、基礎となる値を詳しく調べて、基礎となるすべてのコンポーネントに対して数式と同等のものを使用しようとしていますSUMIF

上記の例では、範囲の集計セルに「+17」と表示し、1 つのセルに「-5」と表示するようにしています。

これどうやってするの?

答え1

最も重要な問題は、ワークシートから別のセルの数式文字列にアクセスする方法です。これを実行できる既存のワークシート関数はありません。したがって、まず次の 2 つのうちのいずれかを実行する必要があります。1) 検索と置換を使用してセルの内容を変更し、数式ではなく文字列を保持するようにするか、2) VBA を使用してセルの数式文字列にアクセスします。

(1) は、操作するセルを選択し、Ctrl+を押してH置換ダイアログを開くことで実行できます。 を検索し(関心のある数式は例のようで、後続の等号を含まないものと想定)、何も置換しません。これにより、値 12 を示す数式を含むセルが、文字列 を示すセルに=変更されます。=8+9-58+9-5

(2) はセルプロパティにアクセスすることで実現できます.Formula。たとえば、セル A1 の数式を取得するには、次のような非常に単純な UDF を使用します。

Public Function GetFormula(r as Range) as String
   GetFormula = r.Formula
End Function

いずれかの方法でこれらの文字列を取得したら、必要な値を抽出するために、、、FINDなどの文字列操作関数を巧みに使用しなければなりません。これを行うと、あなたと私の両方の時間の無駄になるため、ここではこれを行いません。LENVALUE

答え2

ワークブックにシートを追加します。これを「セットアップ」と呼びます。

A1 に8、A2 に9、A3 に と入力します-5。元のシートの列に存在する定数を含む数式と同じ数の列をコピーします。(範囲の構成によっては、セットアップ シートで A1、B1、C1 を使用して、代わりに下にコピーする必要がある場合があります。元のシートの範囲の形状と一致する範囲を作成するのが目的です。)

元のシートで、すべての数式=8+9-5を に置き換えます=Setup!A1+Setup!A2+Setup!A3。これは、数式を評価する検索と置換操作で実行できます。

元のシートにハードコードされた値の代わりに、セットアップ シートに条件付き数式を作成できるようになりました。

=sumif(Setup!A1:A3,">0")

=sumif(Setup!A1:A3,"<0")

関連情報