Skip to main content

各社員の滞在場所をデータとして持っています。

交流をしたであろう、社員同士の情報を確認したいのですが、

データ量が多く、ガントチャートを作成し、目視で確認だと

限界がある状況です。

たとえば、以下サンプルでいうと​

​AとBが業務フロアで12時-14時の間、同じ場所にいた状況ですが、

「A-B 2時間」と集計出来るような方法は無いでしょうか。

※同じ場所に3人以上同席するようなケースもありますが、

そのようなケースの集計方法に指定はありません。​

同じ部屋に滞在した状況を把握したい。

10 respuestas
  1. 7 feb 2022, 5:41

    どういった​集計・分析をするのか分からない段階では、Tsubasaさんが仰るように完全なタイムテーブルを持つテーブルと結合するやり方が汎用性があって良いと思います。

    単に2者間の共有時間を取れればよいのであれば​、アソシエーション分析のようにテーブルを自己結合するのがスタンダードなやり方かなと思います。まず次の図のように同じテーブルを2つ使って氏名の異なるデータを結合します。(便宜上、右のテーブル由来のフィールドには"右"の字を付けています)

    どういった​集計・分析をするのか分からない段階では、Tsubasaさんが仰るように完全なタイムテーブルを持つテーブルと結合するやり方が汎用性があって良いと思います。​単に2者間の共有時間を取れればよいのであれば​、アソシエーション分析のようにテーブルを自己結合するのがスタンダードなやり方かなと思います。まず次の図のように同じテーブルを2つ使って氏名の異なるデータを結合します。(便宜上、右のテーブル

    この結合条件だと同じ日・同じ部屋まで特定していますが実際に時間が被っているかは未判定なので、これは計算式を作って判定します。

    image

    2者が共有する時間は入退室の時間の範囲の最も小さい部分なので、次のようにしてその部分の時間数を取り出します。

    image

    あとは先に作った条件式をフィルターで真のみに指定してから時間数をビューに置くと計算できます。Aから見てBと一緒にいた時間とBから見てAと一緒にいた時間は同じなので、時間数だけ見るとビュー全体では合計して2倍の値(下図だと2+2で4)が表示されます。

    image

    特定の社員をフィルタリングして見るときはこのままのほうが使いやすいですが、主従(順列)を気にしない​場合は、結合条件で氏名をノットイコール(<>)でつなぐのではなく、不等号(<)でつないでおくと時間数が倍になりません。

    image

0/9000