勝敗表や目標達成記録などを付けている時に、何連勝したか(何連続目標を達成したか)を確認できると便利です。
今回は、範囲の中で「最大何連勝したか」と「現在何連勝中しているか」を求める方法をご紹介します。
このような勝敗表があるとします。
最大連勝数を求める
最初に「最大連勝数」を求めます。
まず計算用として、C2にセルにIF関数で、◯の場合は1、✕の場合は0と表示させます。
=IF(B2="◯",1,0)
入力したら下までコピーします。
連勝の数をカウントするため、D2セルに次のような数式を入力します。
=IF(C2=1,C2+C1,0)
入力したら下までコピーします。
この連勝欄から次のMAX関数を使って最大の数を返します。
=MAX(D2:D31)
これで範囲内の最大連勝数が8だということが分かりました。
現在何連勝中しているのかを求める
次に、現在何連勝中かを求めます。IF関数、VLOOKUP関数、TODAY関数を使って次の数式で表されます。
=IF(VLOOKUP(TODAY(),A2:D32,2)="",VLOOKUP(TODAY()-1,A2:D32,4),VLOOKUP(TODAY(),A2:D32,4))
この数式を解説すると、
もし、今日の日付の行が空欄の場合、昨日(今日ー1)の行の4列目(連勝数)を返し、そうでなければ今日の行の4列目(連勝数)を返す
となります。
上の例では今日までに4連勝していることが分かります。
これで、今日の勝敗を入力していれば今日までの連勝数を、入力していなければ昨日までの連勝数が表示されます。
(参考)
【Excel】「もしも~なら」の条件によって値を表示させる IF関数
【Excel】検索条件に一致する値をデータ範囲から飛ばす VLOOKUP関数
【Excel】今日の日付と時刻を表示させる TODAY・NOW関数
【Excel】範囲内の最大値・最小値を求める MAX・MIN関数