0

次の表を検討してください。

Group ID    Date
1001        2014-01-05
1001        2014-01-12
1001        2014-01-22
1002        2014-01-15
1002        2014-01-19

グループ内の期間を日数で計算するにはどうすればよいですか? 期間は、Date[k] - Date[0]として定義されます

例: 目的のテーブルは次のようになります。

Group ID    Date          Duration
1001        2014-01-05    0  
1001        2014-01-12    7
1001        2014-01-22    17
1002        2014-01-15    0
1002        2014-01-19    4

グループの最初の Date 値を返すために MINX を使用してみました:

=MINX(FILTER(テーブル;テーブル[グループ ID] = テーブル[グループ ID]); テーブル[日付])

ただし、 FILTERがテーブル全体を返すかのように、返される値はテーブル全体の最小値です。

4

2 に答える 2

1

計算列またはメジャーのどちらを生成しようとしているのかは明確ではありません。おそらく後者を試す必要がありますが、どちらの方法でも実行できます。

計算列は単純に次のようになります。

= [Date] - CALCULATE(MIN(Table[Date]), FILTER(Table, Table[Group_ID] = EARLIER(Table[Group_ID])))

メジャーははるかに強力です。この日付を取得できます

[Raw Measure] = MAX(Table[Date]) - CALCULATE(MIN(Table[Date]), ALL(Table[Date]))

これは、グループのフィルターを保持しながら、ALL() が Date 列のフィルター コンテキストを開くためです。

合計に反対するため、このメジャーを反復処理する必要があります。この例では、次を使用できます。

[Iterated Measure] = SUMX(Table, [Raw Measure])
于 2015-01-08T18:06:34.867 に答える
0

やりたいことにもよるかもしれませんが…

=MAX(Table[Date]) - MIN(Table[Date]) は理論的に行の GroupID で機能しますか?

于 2015-01-09T01:55:46.037 に答える