EXCELで前のセルがTRUEに等しい場合のMAX

EXCELで前のセルがTRUEに等しい場合のMAX

例を追加するために編集しました: 前のセルが TRUE に等しい場合にのみ、行の MAX 数値を表示するにはどうすればよいですか?ここに画像の説明を入力してください

参加したイベントの最新の日付を表示したいのですが、その人がイベントに参加した場合のみです。

ご覧のとおり、ジョンが最後に参加したイベントの日付は 2019 年 2 月 13 日のはずですが、現在使用している数式では、その人がイベントに参加したかどうかは考慮されず、最も良い日のみが取得されます。これを実現することは可能ですか?

答え1

MAXIFSをお持ちの場合:

=MAXIFS(B:B,A:A,TRUE)

そうでない場合は、AGGREGATE を実行できます。

=AGGREGATE(14,7,$B$1:$B100/($A$1:$A$100),1)

またはこの配列数式:

=MAX(IF($A$1:$A$100,$B$1:$B100))

この最後の方法では、編集モードを終了するときに Enter ではなく Ctrl + Shift + Enter を使用する必要があります。

最後の 2 つは配列型の数式であるため、参照範囲はデータ セットに限定する必要があります。

答え2

簡単に言えば、行列計算を行うことです。

基本的に、列を取得して掛け合わせて、「MAX」を見つけることができます。「True」の値は 1 で、「False」の値は 0 です。「true/false」列が「A」で、値列が「B」であると仮定すると、次のようになります。

=MAX(($A:$A)*($B:$B))

重要

行列計算を実行するには、Excel でcontrolshiftenter行列計算を押す必要があります。単に数式を入力して押すだけでenterは機能しません。

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

この方法には 1 つの落とし穴があります... 負の数の場合に問題が発生します... false 列は 0 と評価されるため... 最大値は 0 になります。

関連情報