【问题标题】:DAX - check for the existance of a column in the queryDAX - 检查查询中是否存在列
【发布时间】:2026-01-06 08:10:01
【问题描述】:

是否可以在 DAX 度量中检查当前查询是否包含特定列?

例如,我有一个名为“时间”的列 - 是否可以通过度量检测自助服务环境中的用户是否已将其包含在他们的报告中?

编辑 - 添加输出示例

下面是一个示例输出

+---------+---------+------+--------------+ | Col1 | Col2 | Col3 |包含Col3 | +---------+---------+------+--------------+ |值 1 |价值 2 | 123 |真 | +---------+---------+------+--------------+ +---------+---------+------+--------------+ | Col1 | Col2 | Col4 |包含Col3 | +---------+---------+------+--------------+ |值 1 |价值 2 | 123 |假 | +---------+---------+------+--------------+

包含 Col3 的查询返回 true,不包含 col3 的查询返回 false。

【问题讨论】:

  • 具体用例是什么?
  • @FoxanNg 根据时间维度中使用的列有条件地求和不同的源列
  • 是否只有该列包含在查询/数据透视的行/列中?
  • 可能有助于发布一些示例(伪)代码以帮助提供更清晰的图片
  • @BillAnton 查看编辑。我希望这是有道理的,画起来并不容易!

标签: dax tabular ssas-tabular ssas-2016


【解决方案1】:

不完全是,但您可以使用 ISCROSSFILTERED、ISFILTERED、HASONEFILTER、HASONEVALUE 等函数,根据您的最终目标,这可能就足够了。

【讨论】:

  • 不幸的是,如果包含某个维度列,我的最终目标是切换度量的基础列。 ISCROSSFILTERED 听起来可能会让我很接近,但很可能列上没有过滤器,因此我可能无法检测到它。