Excelを使用して、さまざまなデータの「最良」および「現在」のストリークを計算したいと思います。
その日のショップの販売目標が500であるとします。過去5年間の毎日の販売データを含む列があります。このデータを使用して、販売目標を達成するための最良の日数と現在の日数を計算するにはどうすればよいですか。
COUNTIF(C:C、 "> = 500")を使用してみましたが、これに関する問題は、目標が達成されたすべての日数をカウントするだけで、最高の「ストリーク」をカウントしない、または記録された日数をカウントしないことです。目標が達成された行。
よろしくお願いします。
ヘルパー列はこれを簡単にします。それなしでできるかどうか見てみましょう。
実際には、COUNTIF
をまったく使用せず、単純なインクリメントカウンターのみを使用します。
注販売目標を動的にし、セル_D1
_で定義しました。他の場所に置く方が少し簡単であることがわかります。したがって、これらの手順に従っている場合は、代わりに_G1
_に配置し、_$D$1
_に続くすべての_$G$1
_セル参照を調整することをお勧めします。
=IF(C2<$D$1,"dq",IF(AND(C1<$D$1,C2>=$D$1),1,D1+1))
_=IF(C2<$D$1,"dq",
_現在のレコードが適格でない場合は、失格とします。
IF(AND(C1<$D$1,C2>=$D$1),1,
現在のレコードが最初の連続した修飾子である場合(_C1<$D$1
_は前のレコードの 'dq'ステータスをテストし、_C2>=$D$1
_は現在のレコードの修飾をテストします)、その値を1
_D1+1))
_ Else-つまり、現在のレコードが不適格な合計でも最初の適格な合計でもない場合、その値をその上のレコードより1大きくします。
この式は_D2
_からコピーされます。 _D1
_は500のストリークのように見えるため、最初のレコード(行2)が適格レコードであり、ターゲットを定義する必要があるため_D1
_を使用すると、この正確なセットアップで問題が発生することに注意してください。これを回避するための簡単な方法がいくつかあります。例の目的のために、簡単にするために、最初のレコードが適格ではないことを確認することを選択しました。
ここから、次のいくつかの機能を追加するのは非常に簡単です。
=MAX(INDIRECT("D2:D"&COUNTA(D:D)))
ここでは動的セル参照を使用しているため、範囲の拡大について心配する必要はありません。 _D:D
_を使用することはできません。これは、その最大値が_D1
_の500として返されるためです。ただし、必要に応じて、単に=MAX($D$2:$D$9999)
などと書くこともできます。とにかく、INDIRECT
を使用することをお勧めします。
そして、おそらく、A
とB
に識別情報があります。おそらく、「最長のストリーク」に関連付けたい日付ですか?
=INDEX(B:D,MATCH(G2,D:D,0),1)
これは、上のセルで計算された、達成された最長のストリークの(first)インスタンスを見つけるための簡単なINDEX
MATCH
です。
LARGE
を使用してください-しかし(nth-最長の縞の長さからn> 1)定義上、複数回発生するため、そのストリークの日付を取得するルックアップは、このアプローチでは機能しません。