Skip to main content

いつもお世話になっております。いつもROMでしたが、どうしても実現できないことが出てきまして、初めて投稿させていただきます。

お知恵をいただけると幸いです。

 

[ 背景 ]

プロジェクト管理の予定データと実績データが、二つの異なるファイルに存在しております。

極めてシンプル化したサンプルデータを添付しております。

予定データが、plan.xlsx(planテーブルと呼ぶことにします)です。

実績データが、actual.xlsx(actualテーブルと呼ぶことにします)です。

 

集計したいことは、以下の通りです。

---

+ "plan"テーブルのCategoryの値を持つ"actual"テーブルの行を特定

+ その中で、"plan"テーブルのTarget_Startの値からTarget_Endの値の範囲に含まれる"actual"テーブルのTarget Noの行をさらに特定

+ 特定された行のAmountをSUM

---

 

期待される結果として、expected.xlsxとして添付しました。

 

[ 課題 ]

 

実際のデータがこのサンプル程度にシンプルであれば、planテーブルとactualテーブルを結合して、

集計をすれば良いことはわかっています。

 

ただ、実際には

 

- さらに多くのデータが(両テーブルに)含まれており、

- (上記の例で言えば)planテーブルには存在しないが、actualテーブルには存在し、集計対象にしたい、

"Category値"が存在し得る

- actualテーブルには挙がってきていないが、planテーブルには存在する"Category値"が存在し得る

(つまり、実績はまだ挙がってきてないが、計画されているCategoryが存在する)

- また、Target_Startの値からTarget_Endの値の範囲(幅)に規則性がない。

 

という状況です

 

この場合、Categoryで外部結合することが望ましいかもしれませんが、データ量が増えてくると

集計に時間を要してしまうのではないかと懸念しております。

 

また、極力、中間データのようなものは生成したくありません。

 

どのように集計をするのが好ましいか、お知恵をいただけないでしょうか?

あるいは、そもそも上記の条件を鑑みると、不可能でしょうか?

 

何卒よろしくお願いいたします。

13 Antworten
  1. 11. Jan. 2018, 02:59

    Aoya さん

     

    Aoya さん 簡単に言うと、Rangeでの結合は出来ないので、以下のようなテーブルが必要です。(Category と Targetの組み合わせで想定される全てのケースが必要) PJT_IDCategoryTargetGroupXABC0Group1XABC1Group1XABC2Group1XABC3Group1XABC4Group1XABC5Group1XABC6Group1XABC7Grou

     

    簡単に言うと、Rangeでの結合は出来ないので、以下のようなテーブルが必要です。

    (Category と Targetの組み合わせで想定される全てのケースが必要)

     

    PJT_IDCategoryTargetGroupXABC0Group1XABC1Group1XABC2Group1XABC3Group1XABC4Group1XABC5Group1XABC6Group1XABC7Group1XABC8Group1XABC9Group1XABC10Group1XABC11Group2XABC12Group2XABC13Group2XABC14Group2XABC15Group2XABC16NAXABC17NAXABC18NAXABC19NAXABC20NAZCDF0NAZCDF1NAZCDF2NAZCDF3NAZCDF4NAZCDF5NAZCDF6NAZCDF7NAZCDF8NAZCDF9NAZCDF10Group3ZCDF11Group3ZCDF12Group3ZCDF13Group3ZCDF14Group3ZCDF15Group3ZCDF16Group3ZCDF17NAZCDF18NAZCDF19NAZCDF20NA

     

    pastedImage_2.png

     

    別の解法としては、全てFORMULAで。

     

    pastedImage_4.png

     

    パラメータを組み合わせれば、もう少し利用しやすくなるようにも思われます。

     

    いずれにしても、データの範囲が固まっていなさそうなので、どにょうな対応をとるにしても、

    メンテナンスの工数はそれなりにかかります。

     

    まずは集計の必要項目(グルーピングのルール)をはっきりさせ、メンテのルールを明らかにすることから始めるべきかとは思います。

     

    pastedImage_5.png

     

    追加の情報としては、まもなくリリースされる VERSION 10.5からは、RangeのJoinが機能として追加されます。

    ただ、完全にこのケースのニーズが満足されるかどうかは不明です。

     

    Thanks,

    Shin

0/9000