列内のグループをカウントする数式

列内のグループをカウントする数式

私は Excel で作業していますが、残念ながら、この質問の厳密な要件は、ソリューションを Excel で実行すること、できれば数式を使用することですが、VBA ソリューションでも許容できることを他の人に納得してもらおうと思います。友人と協力して、列内の繰り返し頻度に基づいて項目の数をカウントする数式を考え出そうとしていますが、どうしても行き詰まっています。

YYYYMMDDHHMM 形式の一意の整数タイムスタンプの列があるとします。毎分 (MM) のデータが記録され、変数の状態の発生 (この場合は天気) が保存されます。天気の状態は、「嵐」、「晴れ」、「霧」などです。他の列には、他の変数の別の状態があります。

私がしなければならないのは、それぞれの状態がどれくらい続いたかを判断することです。

他の列で同じ数式を使用できるように、州のテキスト値に関係なく関数が機能する必要があります。ご想像のとおり、このデータ セットは数万行あるため、小計を実行することはできません。小計を実行するとデータが不適切に分割され、手動でのコピーと貼り付けが大量に必要になりますが、私がやろうとしていることはほぼ達成できます。

たとえば、ある列に 15 分間の「霧」、その後に 27 分間の「雨」、そして 94 分間の「雲」などがある場合、それらのグループの合計を知る必要があります。適切なレコードの隣に合計を表示できれば (霧のグループ内のすべての行に「15」、雨のグループ内のすべての行に「27」など)、理想的です。

編集:

追加されたスプレッドシート:スプレッドシートの例

このシートには、2018 年に発生した嵐の気象データが含まれています。天気と「WFx Cat」フィールドは収集されたデータによって決定され、それぞれの「count_」列には、何かが変化するまでその項目が何回連続して発生したかが表示されます。

シートの中央から抜粋したものがこれです。カウントの 2 と 8 に注目してください。これらは列内のグループ全体で繰り返され、その「セクション」内のアイテムの合計数を示しています。

画像

ありがとう!

答え1

以下のソリューション図では、サポート列 Temp1 (列 C) と GroupCount (列 D) を使用します。

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

以下のように数式を設定します

列C、C2:=IF(B2=B1,C1+1,1) 列D、D2:=IF(C2<C3,D3,C2)

数式をデータの最後までコピーします。

関連情報