Google スプレッドシートでしきい値を超えるまで計算を繰り返す方法

Google スプレッドシートでしきい値を超えるまで計算を繰り返す方法

財務目標を評価するために使用している Google スプレッドシートがあります。このシートには 8 つのセルがあります。最初の 2 つのセルは、他のセルの数式で使用されるパラメータを入力するために使用されます。

最初のセルは、セル 7 の結果を生成するパラメーターです。2 番目のセルは、到達したいしきい値です。基本的には、セル 1 の値を取得し、セル 7 に表示される結果がセル 2 の値を超えるまで、その値を 1 ずつ増やします。例は次のようになります。

  A                        B
1 Current Total            $10000
2 Target Amount            $1000
3 Current Amount           =DIVIDE(B1, 100)
4 Result A                 =PRODUCT(B3, 0.35)
5 Result B                 =PRODUCT(B3, 0.50)
6 Result C                 =PRODUCT(B3, 0.15)
7 TOTAL                    =SUM(B4:B6)
8 Total Needed             ?

上記の例を使用して、B7 の値が B2 の値を超えるまで値 B1 を 1 ずつ増やす数式を作成します。しきい値を超えるために使用した金額をセル B8 に入力します。

この繰り返し操作を「舞台裏で」実行して、結果のみがセル B8 に表示されるようにしたいのですが、すべての「作業」を表示したくありません。Google スプレッドシートでこれを行う方法はありますか? ある場合、どのようにすればよいですか?

答え1

少し遅れましたが、関係者の皆様へ。Total Needed価値を保持します

=(B1 * (B2/B3)) - B1


これを繰り返したい「舞台裏」での操作なので 結果はセルB8に表示されますすべての「作業」を表示したくありません。Google スプレッドシートでこれを行う方法はありますか? ある場合、どのようにすればよいですか?

これはメニュー -> 拡張機能 -> Google Apps Script -> で実現できます。カスタム関数の追加しかし、とにかく、計算は十分に速いので、あなたも誰も計算から何も見ることはないでしょう。

バリアント 1 私の提案は、1を足すのに必要な回数を計算する計算式でこれを解くことです。

B3 は現在の合計の 1% です。分割してTarget Amount by Current Amount目標金額の 1% を取得します。簡単な計算です。

B8 = B2/B3 

結果を現在の合計で掛けます。これにより、目標金額の1%が現在の合計の何倍になるかがわかります。

B8 = (B2/B3) * B1

次に、結果から現在の合計を引きます。これは、現在の合計の加算値の後に1を何回加算する必要があるかを知る必要があるためです。

セル7の結果がセル2の値と交差するまで

B8 = ((B2/B3) * B1) - B1

   A                  B
1 Current Total      10000
2 Target Amount       1000
3 Current Amount     = B1 / 100
4 Result A           = B3 * 0.35
5 Result B           = B3 * 0.50
6 Result C           = B3 * 0.15
7 TOTAL              = SUM(B4:B6)
8 Total Needed       = ((B2/B3) * B1) - B1


解決が難しい同様のケースがある場合は、そのプロパティに適切な名前を付けるようにしてください。名前に、そのプロパティが保持する値について語らせてください。これは、そのケースについて考えるときに役立ちます。

すでに計算されたすべての値を除外します。

Current Amountは現在の合計の 100%、B3 = B1/100 です。したがって、このセルには、その場合の計算時に常にその値が保持されます。つまり、常に になります=B1/100

Results A, B and C現在の金額と同じです。これらも現在の合計の一部です。Result A現在の合計の 35% です...その他も同様です。それぞれは常に同じ値になります。

TOTALは常に現在の金額と等しくなります。これは、その部分を要約しているためです。これはハードコードされた値でもあります。

ここで、既知のプロパティを他のプロパティから分離します。それらはすべて同じ 1 つの値 (現在の合計の一部) を表し、ハードコードされた値を持っているため、計算について考える必要はありません。

   A                        B
1 Current Total                              
2 Target Amount            __________________
3 Current Amount           = B1 / 100
4 Result A                 = B3 * 0.35
5 Result B                 = B3 * 0.50
6 Result C                 = B3 * 0.15
7 TOTAL                    = SUM(B4:B6)
8 Total Needed             __________________

現在、作業に残っている値は、現在の合計と目標金額です。



上記の例を使用して、次のような数式を作成します。B7の値がB2の値と交差するまで、B1の値を1ずつ増加します。しきい値を超えるために使用された金額をセル B8 に入力します。

バリアント 2 B1 の値を、自分自身で手動で 1 増やします。

列 C の D1 でテストします。C7=C2 の場合、結果は C8 に入力されます。それ以外の場合は、D1 を増やすか減らす必要があります。

   A                  B                 C                      D 
1 Current Total      10000             = B1+D1            --> 90000 <--
2 Target Amount      ____________      1000
3 Current Amount     = B1 / 100        = C1/100
4 Result A           = B3 * 0.35       = C3*0.35
5 Result B           = B3 * 0.50       = C3*0.5
6 Result C           = B3 * 0.15       = C3*0.15
7 TOTAL              = SUM(B4:B6)      = SUM(C4:C6)
8 Total Needed       ____________      = IF(C7=C2; D1; "Change D1")

関連情報