3 番目のセルに基づいて 1 つのセルの値を別の値に変更する Excel 数式

3 番目のセルに基づいて 1 つのセルの値を別の値に変更する Excel 数式

簡単に言うと、a1 には変更可能な値があり、b1 には a1 の値をテストする数式があります。c1 は a1 に基づいて選択された値にリセットされます。

値を入力できるテーブルがあります。a1 に「リセット」を選択できるリスト ボックスがあります。テーブルの値を 0 に変更してテーブルを「クリア」し、新しい値を入力できるようにしたいと考えています。

私は上記のように単一のセルでこれをテストしようとしていました。b1に入力した数式

=if(a1="RESET",(c1=0),c1)

これは c1 の値を変更するのではなく、c1=0 を if then のテスト部分に含めます。

問題は、これが保存されている場所が原因でマクロや VB コードを使用できないため、数式を使用しなければならないことです。

これは十分に明確でしたか?

答え1

数式は別のターゲットを変更できません。2つの数式が必要になります。

B1 -=IF(A1="RESET",1,0)

C1 -=IF(B1>0,"woohoo",0)

演習のポイントが、ユーザーが C1 を変更して数式を削除できるため、B1 に数式を 1 つだけ含めることである場合、これは不可能です。

答え2

あなたの説明からは、どのセルが他のセルに依存するのかは明確ではありませんが、要件を正しく理解していれば、あなたがやりたいことは VBA または追加の手動ステップなしでは実行できません。

Raystafarian が説明しているように、あるセルを別のセルの数式で変更することはできません。ただし、セルに数式と値の両方を含めることもできません。B1 または C1 に数式があり、そこに値を入力すると、数式は失われるため、これは 1 回しか機能しません。

あなたの数式は、入力を C1 に入れる必要があることを示しています。なぜなら、それが B1 に表示されるものであり、A1 は0A1="RESET" のときに B1 に表示される値を変更するからです。VBA を使わずに、あなたが説明している内容に最も近いものは次のようになると思います。

  • C1 に新しい値を入力して、以前の値を置き換えます。
  • B1 には以下が含まれます=IF(A1="RESET",0,C1)

これにより、数式で説明されている内容が実現されます。B1 はテーブル内の表示場所として機能し、新しい値が必要であることを示すインジケーターになりますが、値は C1 に入ります。

ただし、A1 が変更されない限り、A1 には が引き続き含まれるRESETため、C1 の値を変更しても、B1 に新しい値が表示されることはありません。A1 も変更する必要がありますが、この要件により、VBA や手動介入なしでは循環参照が作成されます。新しい値の入力を検出し、A1 の変更をトリガーするものが必要です。このタイプのアクションには、VBA が必要です。または、新しい値が B1 に表示される準備ができた後、ユーザーが A1 を手動で変更する必要があります。

関連情報