質問: 開始/終了時間に基づいて同時セッションの数をカウントするexcel 処理しようとしている大量のデータセットがあります。列aにはユーザー名があり、列bにはセッションの開始日時があり、列cにはセッションの終了日時があります。ユーザーアカウントに基づいて、一度に進行中の同時セッションの数をカウントしようとしています。私が直面している困難な点は、1人のユーザーが一度に複数のセッションを実行できることです。例えば:user start time end time desired result (license count) jw 03/24/2015 14:00:44 03/24/2015 14:09:57 --> 4 tt 03/24/2015 13:58:14 03/24/2015 14:21:08 --> 3 dq 03/24/2015 13:53:10 03/24/2015 14:15:39 --> 3 bb 03/24/2015 13:50:55 03/24/2015 14:20:42 --> 2 ba 03/24/2015 13:43:02 03/24/2015 13:57:26 --> 2 jw 03/24/2015 13:40:30 03/24/2015 13:48:38 --> 1 ba 03/24/2015 13:18:26 03/24/2015 13:18:44 --> 1 ba 03/24/2015 13:15:18 03/24/2015 13:15:22 --> 1 ct 03/24/2015 11:56:55 03/24/2015 11:58:21 --> 1 ct 03/24/2015 11:53:23 03/24/2015 11:56:55 --> 1 ct 03/24/2015 11:51:50 03/24/2015 11:53:23 --> 1 ct 03/24/2015 11:48:11 03/24/2015 12:16:36 --> 1 ct 03/24/2015 11:36:54 03/24/2015 11:37:50 --> 1 ct 03/24/2015 11:33:52 03/24/2015 11:39:38 --> 1 ct 03/24/2015 11:31:25 03/24/2015 11:34:01 --> 1 4番目の列は、数式で計算できるようにしたい結果を示しています。上記のデータは、次のようにグラフィカルに表示できます。例の最後(およびグラフの下部)に示されているように、ユーザーctでは一度に複数のセッションが実行されます。これらの接続は、1つのライセンスとしてのみカウントされます。これを明確にする必要がある場合はお知らせください。
回答: これは、目的の結果を生成する、はるかに短く単純な式です。 この行より下の行数 時間範囲が重複し、 ユーザーが違う 一を足す。 最初のステップは、その間隔を把握することです開始1/終わり1 オーバーラップ間隔開始2/終わり2 開始した場合のみ1<終了2 そして終わり1>開始2。 (これは、考えれば見やすく、描くと見やすくなります。) barry houdiniは≤と≥を使用 なので、同じ規則を使用します。 afaict、サンプルデータセットには、あるセッションの開始時刻または終了時刻が別のユーザーに属するセッションの開始時刻または終了時刻と正確に一致するインスタンスはないため、このアプローチの違いによって異なる結果が得られることはありません(例の場合)データセット)。したがって、各行について、上記が当てはまる開始/終了レコードでこの行より下の行をカウントする必要があり、useridはこの行のuseridと等しくありません。そして1を追加します。それは単に=countifs(b2:b$16, "<="&c2, c2:c$16, ">="&b2, a2:a$16, "<>"&a2) + 1 現在の行(row2として表され、セルa2、b2、およびc2を含む)から絶対行番号16(row $ 16として表され、以下を含む)までの範囲を定義したことに注意してください。セルa16、b16およびc16)。これにより、countifは現在の行と次の行のみを検索します。そして、これはnot配列数式であることに注意してください。スクリーンショットを投稿しますが、それは(事実上)バリーと同じであるため、帯域幅が無駄になります。