我正在尝试计算DAX表达式[对于Excel 2010中的MS PowerPivot],以便在应用的范围内均匀分配值的总和,并在给定的时间跨度/周期内对其进行重新求和.在SQL服务器中交叉应用是微不足道的,尽管每次尝试都会导致相同的错误结果.
我已将MS Project的输出保存为Excel并使用PowerQuery导入/转换,因此开始和结束/结束日期是正确的日期,{X} h和{Y} d是整数,以及日历之间的持续时间它们已经为模型计算/格式化.我还创建了一个日期表,其中包含从第一个日期到最后一个日期的连续日期,以及一个年份表,其中包含我想要汇总的4位数年份的字符串表示.
模型看起来像这样:

我已经在ResourceQuery,TaskQuery和AssignmentQuery表上创建了计算列(所有这些都直接来自MS Project输出),以及ServiceAreaQuery(来自TaskQuery的唯一值......基本上是子项目).每个还有一个简单的度量,它是Assigned hours列的总和.
数据本身看起来像您期望的Project 2010文件,并具有{start_date},{finish_date}和小时.任务的日期可以跨越1天到5年......这就是我的问题所在.
如何为长时间运行的任务拆分/分块预先求和的值以匹配我正在寻找的时间间隔?
即使我使用日期表中的年份列,时间智能也没有抓住它并且我已经没有计算CALCULATE(SUM(FILTER(COUNTROWS(DATESBETWEEN)))类型的东西了.
有两个中间步骤,我试图找出无济于事.我认为它们都是通过相同的有效功能来解决,以达到小时的最终目标,服务区域,资源,年份.
透视表显示
为了显示最终目标
您可以在下面的输出中看到该问题.

请注意,当使用分配的小时总数和AssignmentQuery中的资源名称时,我得到正确的总和,但是当使用任何日期值时...我只得到开始日期的小时数(模型中的活动关系).我需要的是这些时间在它们适用的时期内均匀分布(因此,如果在2016年1月1日至1月1日之间有1000小时的话,我希望每年有333小时的时间显示) .
我最初的想法是选择器/过滤器/计算功能需要执行以下操作:
任何想法都非常感谢!我愿意做一些额外的ETL /数据创建作为PowerQuery步骤,但是我真的想为此找出正确的DAX表达式,因此它可以作为项目的时间切片器/过滤器.
提前致谢.
**编辑发布修改后的答案**
[Hours Apportioned Raw] :=
DIVIDE (
CALCULATE (
[Hours],
FILTER (
AssignmentQuery,
AssignmentQuery[Start_Date] <= MAX ( Dates[Date] )
&& AssignmentQuery[Finish_Date] >= MAX ( Dates[Date] )
)
)
, ( COUNTROWS (
DATESBETWEEN (
Dates[Date]
, FIRSTDATE ( AssignmentQuery[Start_Date] )
, …Run Code Online (Sandbox Code Playgroud) excel-formula cross-join business-intelligence powerpivot dax
我正在 Python 中进行一些 NLP 实验,并希望在 Python 3.x 中实现这个功能,尽管这里的 lambda 扩展让我很困难,我不确定它会如何在 3.x 中实现;有什么建议?
candidates = [' '.join(word for word, pos, chunk in group).lower()
for key, group in itertools.groupby(all_chunks, lambda (word,pos,chunk): chunk != 'O') if key]
Run Code Online (Sandbox Code Playgroud)
由于 3.x 不支持子列表参数,我得到的错误就在这块上
lambda (word,pos,chunk)
Run Code Online (Sandbox Code Playgroud)
原始来源是这里的extract_candidate_words函数:http : //bdewilde.github.io/blog/2014/09/23/intro-to-automatic-keyphrase-extraction/