複数の反復の最大値のみを表示する(Microsoft Excel)
マイクには、計算結果を示す3つのセル(A1:A3)があります。彼は、これらのセルのいずれかにこれまでに現れた最大値を決定し、その値をセルE5に格納する方法を必要としています。彼は3つから最大値を取得する方法を知っていますが、ワークシートを再計算するときに、A1:A3の値がE5の最大値よりも小さい場合(A1:A3の最大値の以前の決定に基づく)、E5変更しないでください。言い換えると、E5は、A1:A3にあるものがE5にあるものよりも大きい場合にのみ変更する必要があります。マイクはそのような計算を実行する方法がわかりません。
この問題を解決するには2つの方法があります。 1つ目は、セルE5に配置される単純な式を作成することです。
=MAX(A1:A3,E5)
MAX関数は、参照するさまざまな値を調べて、それらから最大値を返します。まさに必要な値です。ただし、この数式はセルE5に配置されており、E5も参照しているため、エラーが返されます。これは、数式が循環参照を作成するためです。 Excelはそれらを処理できますが、それを行うには小さな構成変更を行う必要があります:
。 [ツール]メニューから[オプション]を選択します。 Excelに[オプション]ダイアログボックスが表示されます。
。 [計算]タブを表示します。 (図1を参照)
。 [反復]チェックボックスが選択されていることを確認します。
。 [OK]をクリックします。
これで、Excelは、セルE5に入力した単純な数式などの循環参照を処理します。
2番目のアプローチは、マクロを使用して計算を実行することです。 (何らかの理由で)ブックで循環参照を有効にしたくない場合があるため、このアプローチが推奨される場合があります。以下は実際にはイベントハンドラーであり、ワークシートのコードに追加されています。 (最も簡単な方法:
シートタブを右クリックし、表示されるコンテキストメニューからコードウィンドウを表示して、そのコードウィンドウにマクロを追加します。)
Private Sub Worksheet_Calculate() Dim dMax As Double dMax = Application.WorksheetFunction.Max(Range("A1:A3")) If dMax > Range("E5") Then Application.EnableEvents = False Range("E5") = dMax Application.EnableEvents = True End If End Sub
ワークシートが再計算されるたびに、マクロがトリガーされます。それはA1:A3の最大値をつかみ、それをE5にあるものと比較します。それが大きい場合にのみ、その値はE5に配置されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(10915)は、Microsoft Excel 97、2000、2002、および2003に適用されます。
Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります:
link複数の反復の最大値のみを表示。