Excelセルの合計を一定に保つ

Excelセルの合計を一定に保つ

3 つのセル (A1、A2、A3) がある列があります。3 つのセルのいずれかを増減しても、3 つのセルの合計数値が一定のままになるようにしたいです。つまり、いずれかのセルの増減が他の 2 つのセルに均等に分配される必要があります。たとえば、3 + 5 + 2 = 10 から始めます。5 を 6 に変更すると、自動的に 2.5 + 6 + 1.5 = 10 になります。実際には、定数 100 に等しくしたいセルが約 20 個あることに注意してください。どうもありがとうございます。

答え1

埋めるA1を通してA20合計すると100:

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

次に、次のものを配置しますイベントマクロワークシートのコード領域で:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, Delta As Double
    Set rng = Range("A1:A20")
    If Intersect(Target, rng) Is Nothing Then Exit Sub

    Delta = (100 - Range("A21").Value) / 19
    Application.EnableEvents = False
        For Each r In rng
            If r.Address <> Target.Address Then
                r.Value = r.Value + Delta
            End If
        Next r
    Application.EnableEvents = True
End Sub

マクロがインストールされてアクティブになると、以下の値の変更が検出されます。A1を通してA20100 を維持するように他の値を調整します。一度に 1 つのセルのみを変更します。

ワークシート コードなので、インストールが非常に簡単で、自動的に使用できます。

  1. Excelウィンドウの下部にあるタブ名を右クリックします
  2. 「コードの表示」を選択すると、VBEウィンドウが表示されます。
  3. 内容を貼り付けてVBEウィンドウを閉じます

不安な点があれば、まずはトライアルシートで試してみてください。

ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。

マクロを削除するには:

  1. 上記のようにVBEウィンドウを表示します
  2. コードを消去する
  3. VBEウィンドウを閉じる

マクロ全般の詳細については、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

そして

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

イベント マクロ (ワークシート コード) の詳細については、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/event.htm

これを機能させるにはマクロを有効にする必要があります。

関連情報