你好,
我有一个模块a与以下行项目,格式,和数据:
价值(格式=数量) | 开始(格式=日期(年月)) | 结束(格式=日期(年月)) |
101 |
1/1/2019 | 2/1/2019 |
201 | 3/1/2019 | 4/1/2020 |
301 | 5/1/2020 | 空白 |
我有另一个模块B与时间维度和一行项目-value_over_months映射到模块A和预期数据如下:
2019年1月- | 2月19日 | Mar-19 | Apr-19 | 5月19日 | Jun-19 | Jul-19 | 8月19 | Sep-19 | 10月19 | 11月19 | 12月19日 | 1月20日 | Feb-20 | Mar-20 | Apr-20 | 5月20日 | Jun-20 | Jul-20 | Aug-20 | Sep-20 | 10月20 | 11月20 | 12月20日 | |
value_over_months | 101 | 101 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 201 | 301 | 301 | 301 | 301 | 301 | 301 | 301 | 301 |
我怎样才能做到这一点?
解决了!去解决方案。
所以要求与原来的帖子相比发生了变化?最好的方法是修复源数据,这样您就只加载所需的正确值。
话虽如此,我相信这将会奏效:
在第一个模块中,创建这些新的行项。
起始月:期间(起始日期)
新的起始月份:IF PERIOD(起始日期)<> PERIOD(结束日期)THEN实际起始月份+ 1 ELSE实际起始月份
Days: IF结束日期<= 'SYS Time Filter - Month'。End[LOOKUP:实际开始月份]THEN结束日期-开始日期ELSE '系统时间过滤器-月份'。结束[LOOKUP: New Starting Month]—开始日期
使用月份:暂时留空
创建一个以Time为维度的新模块:
Max:编号列表数据。[MAX:编号列表数据。新开始月)
返回“data”模块,填写“Month to Use”公式:
IF Days =最大天数Nbr。Max[查找:新的开始月]然后新的开始月其他空白
在目标模块中,将原来的总和改为现在使用Month to use:
希望这对你有用,
抢劫
看看这是否有帮助。
我复制了你的数据,但根据我的模型更改了年份:
在目标模块中,我有这两行项目:
取值范围:“编号列表数据”。取值[SUM:已编号列表的数据。Start Date],其中“Data Of Numbered List”为源模块名称(上面那个)
Value Over Months:IF Value = 0 THEN PREVIOUS(Value Over Months) ELSE Value
希望这对你有用,
抢劫
这是可行的,但如果我们想把它扩展到这样的数据,其中一个月可以有多个值,我们想要只取这个值这个月的大部分时间都是这样。
例如:
价值 | 开始日期 | 结束日期 |
101 | 1/1/2019 | 1/4/2019 |
102 | 1/5/2019 | 1/20/2019 |
103 | 1/21/2019 | 2/28/2019 |
模块B应该有
1月20日 | Feb-20 | ---- | |
价值 | 102 | 103 | ---- |
所以要求与原来的帖子相比发生了变化?最好的方法是修复源数据,这样您就只加载所需的正确值。
话虽如此,我相信这将会奏效:
在第一个模块中,创建这些新的行项。
起始月:期间(起始日期)
新的起始月份:IF PERIOD(起始日期)<> PERIOD(结束日期)THEN实际起始月份+ 1 ELSE实际起始月份
Days: IF结束日期<= 'SYS Time Filter - Month'。End[LOOKUP:实际开始月份]THEN结束日期-开始日期ELSE '系统时间过滤器-月份'。结束[LOOKUP: New Starting Month]—开始日期
使用月份:暂时留空
创建一个以Time为维度的新模块:
Max:编号列表数据。[MAX:编号列表数据。新开始月)
返回“data”模块,填写“Month to Use”公式:
IF Days =最大天数Nbr。Max[查找:新的开始月]然后新的开始月其他空白
在目标模块中,将原来的总和改为现在使用Month to use:
希望这对你有用,
抢劫