ADDMISSINGITEMS 是软件在自动生成查询时经常使用的函数,某些图表会在运行时调用这个函数。函数的作用是添加由于新列的表达式返回空值而被 SUMMARIZECOLUMNS 隐藏的行。
示例用法
例如,观察下面这个 SUMMARIZECOLUMNS 查询的结果:
- EVALUATE
- SUMMARIZECOLUMNS (
- 'Date'[Calendar Year],
- "Quantity", SUM ( Sales[Quantity] )
- )
复制代码

日期表包括从 2005 年到 2011 年的所有年份,但 SUMMARIZECOLUMNS 仅显示数量列非空的年份。通过在 ADDMISSINGITEMS 中调用需要包含“空”成员的列,比如将年份作为参数,下一个查询在返回结果中包含了没有数据的年份:
- EVALUATE
- ADDMISSINGITEMS (
- 'Date'[Calendar Year],
- SUMMARIZECOLUMNS (
- 'Date'[Calendar Year],
- "Quantity", SUM ( Sales[Quantity] )
- ),
- 'Date'[Calendar Year]
- )
复制代码

聚合两列或更多列时,可以根据需要定义希望包含“缺失”项的单个列。例如,观察以下查询,该查询按库存类型和顾客性别分组,返回单价大于 3000 的产品的销售数量:
- EVALUATE
- SUMMARIZECOLUMNS (
- Product[Stock Type],
- Customer[Gender],
- CALCULATETABLE (
- Sales,
- Product[Unit Price] > 3000
- ),
- "Quantity", SUM ( Sales[Quantity] )
- )
复制代码

如你所见,结果只有一种库存类型 Mid,如果你只把 ADDMISSINGITEMS 应用到库存类型,结果会新增两行,每行对应一个缺失的库存类型(Low and High):
- EVALUATE
- ADDMISSINGITEMS (
- Product[Stock Type],
- SUMMARIZECOLUMNS (
- Product[Stock Type],
- Customer[Gender],
- CALCULATETABLE ( Sales, Product[Unit Price] > 3000 ),
- "Quantity", SUM ( Sales[Quantity] )
- ),
- Product[Stock Type]
- )
复制代码

当然,你还可以在此基础上显示性别列的缺失项,如下面的示例所示:
- EVALUATE
- ADDMISSINGITEMS (
- Product[Stock Type],
- Customer[Gender],
- SUMMARIZECOLUMNS (
- Product[Stock Type],
- Customer[Gender],
- CALCULATETABLE ( Sales, Product[Unit Price] > 3000 ),
- "Quantity", SUM ( Sales[Quantity] )
- ),
- Product[Stock Type],
- Customer[Gender]
- )
复制代码
 |