Excel で数字を減算する - 3 つの列の数字、すべての列にデータが含まれているわけではない、収集された最も古いデータから収集された最新のデータを減算する

Excel で数字を減算する - 3 つの列の数字、すべての列にデータが含まれているわけではない、収集された最も古いデータから収集された最新のデータを減算する

多数の行があるスプレッドシートがあります。各行には 3 つの列 (B、C、D) があり、3 つの異なる時点で収集された数値データを含めることができます。B = 最初の時点、C = 2 番目の時点、D = 3 番目の時点。特定の時点でデータを収集できなかった場合、セルにはゼロが含まれます。

各行ごとに、

  1. 各行に「合計列 (列 E)」を作成します。
  2. 1 つの数字のみが含まれる行の合計列 (列 E) に「結果なし」と入力します (列 B、C、または D のいずれであっても)。
  3. 数値を含む最新のデータ収集時点の数値を、数値を含む最も古いデータ収集時点の列の数値から減算します。

誰か助けてくれませんか?

答え1

IF、COUNTIF、LOOKUP、INDEX 関数を組み合わせた配列数式を使用できます。

セル E2 (合計列) の数式:

=IF(COUNTIF(B2:D2,">0") < 2, "no result",LOOKUP(9.999999999E+307,IF(B2:D2>0,B2:D2)) - INDEX(B2:D2,MATCH(TRUE,INDEX(B2:D2>0,0),)))

数式内で、CTRL + SHIFT + ENTER を押して中括弧を取得し、配列数式にします。それを下にドラッグします。

まず、行内の 0 を超える値の数を数えます。2 未満の場合は、「結果なし」と表示されます。それ以外の場合は、数式の残りの部分を実行します。残りの部分では、行内の最後の 0 以外の値を探し、行内の最初の 0 以外の値を減算します。

ここに画像の説明を入力してください

答え2

ようこそ、スティーブン。Isolated の回答はボスレベルであり、任意の数の入力列に外挿できますが、この簡略化された式は、最も単純な 3 列の入力シナリオでも機能するはずです。

=IF(COUNTIF(B2:D2,">0") < 2, "No result", IF(B2=0,D2-C2,IF(D2=0,C2-B2,D2-B2)) )

答え3

列の数が少ないので、誰でもロジックを追ってトラブルシューティングできるように、非常にシンプルにしておくことをお勧めします。たとえば、次のようになります。

=IF(COUNTIF(B2:D2,">0")<2,"No result", IF(D2>0,D2,C2)-IF(B2>0,B2,C2))

関連情報