Excel で別の列の最後の「YES」に対応する列から日付を返す方法

Excel で別の列の最後の「YES」に対応する列から日付を返す方法

私は、プロの航空乗務員のトレーニングの進捗状況を追跡するのに役立つスプレッドシート ツールを開発しようとしています。すべてのトレーニングで「最新」であるとみなされるためには、飛行士は設定された期間内にさまざまなトレーニング イベントを完了する必要があります。

たとえば、乗組員がタッチアンドゴー トレーニングの有効期限を 30 日間持っている場合、乗組員は、有効期限が切れる前に次のタッチアンドゴー イベントを完了しなければならない日付を知りたいと思うでしょう。

トレーニング イベント (1 ~ 5)、日付、および YES/NO 応答の次のスプレッドシートを考慮すると、特定のイベントの最新の日付を返す数式はありますか?

          1   2   3   4   5
01/03/14|YES|NO |YES|NO |YES|
01/05/14|NO |NO |YES|YES|NO |
01/12/14|YES|YES|YES|YES|NO |
01/15/14|YES|NO |NO |NO |NO |
01/21/14|NO |NO |YES|YES|NO |
01/25/14|NO |YES|YES|NO |NO |

上記の疑似テーブルでは、Excel で次の値を返すようにしたいと思います。

イベント 1: 2014 年 1 月 15 日
イベント 2: 2014 年 1 月 25 日
イベント 3: 2014 年 1 月 25 日
イベント 4: 2014 年 1 月 21 日
イベント 5: 2014 年 1 月 3 日

これは可能ですか?

答え1

はい、可能です。各トレーニング イベントの列にこれを入力します:

=MAX(IF(C3:C8="YES",$B$3:$B$8))

これはイベント 1 に適用される数式です。日付が列 B にあり、イベント データが列 C 以降から始まると仮定します。

これは配列数式として入力する必要があるため、Ctrl+ Shift+を押しますEnter

答え2

はい、組み合わせ最大そしてもし、配列数式

=MAX(IF(B2:B7="YES",A2:A7))

これは配列数式なので、入力後にctrl+ shift+をenter押して中括弧を表示する必要があります。

数字として表示される場合は、必ず書式を日付に戻してください。

答え3

LOOKUP「配列エントリ」を必要としない方法を使うことができます。列Aに日付があると仮定します

=LOOKUP(2,1/(B2:B7="Yes"),$A2:$A7)

注: これは最後の値を「位置的に」見つけます - 例のように日付が昇順で並べ替えられていると仮定すると、最後の値は時系列で同じになります

関連情報