如何在 Power BI 中动态获取列名?
Posted
技术标签:
【中文标题】如何在 Power BI 中动态获取列名?【英文标题】:How to get column name dynamically in Power BI? 【发布时间】:2019-11-14 06:35:56 【问题描述】:我有一个 Excel 表,用户可以在其中按月维护数据格式。 每个新月添加一个带有一些前缀的列并保持格式。 就像本月一样,他们将添加列名“OCT_Data_Format”。 请看下面的截图。
他们将在 12 月再次添加一个名为“DEC_data_format”的新列。
我想添加一个名为“DataFormat”的自定义列,并在每个月使用新列的值。
请求您让我知道 power bi 中是否有任何功能可以将月份名称与前缀“_data_format”连接起来。
就像我们在编程中所做的那样。前任。 [function.getcurrentmonthname + "_data_format"].value
【问题讨论】:
我想,你可以使用DAX函数来解决这个问题。 @ProtapGhosh 我也想知道。 【参考方案1】:可以像这样(在 DAX 中)连接基于当前月份“名称”(准确地说不是全名)的列名称:
SWITCH (
MONTH ( TODAY() ),
1, "Jan",
2, "Feb",
3, "Mar",
4, "Apr",
5, "May",
6, "Jun",
7, "Jul",
8, "Aug",
9, "Sep",
10, "Oct",
11, "Nov",
12, "Dec"
) & "_Data_Format"
但是您需要unpivot 您的表并将所有月份数据放入两列 - Attribute
和 Value
,其中属性中的值将是旧列的名称,您可以使用标准过滤找到你要找的东西。
【讨论】:
嗨@Andrey Nikolov,列名已成功连接,但它也在值中返回列名。我想通过连接列名来检索列值。请看结果。 ibb.co/dbYm6Hd @ShahabHaidar 这就是为什么我告诉你不要旋转表格。【参考方案2】:这可能会解决您的问题:
CONCATENATE( SWITCH( [MONTH(NOW())], 1, "JAN", 2, "FEB", 3, "MAR", 4, "APR"
, 5, "MAY", 6, "JUN", 7, "JUL", 8, "AUG"
, 9, "SEP", 10, "OCT", 11, "NOV", 12, "DEC"
, "Unknown month number" ), "_data_format" )
-
https://docs.microsoft.com/en-us/dax/concatenate-function-dax
https://docs.microsoft.com/en-us/dax/month-function-dax
https://docs.microsoft.com/en-us/dax/switch-function-dax
【讨论】:
嗨@Protap Ghosh,列名已成功连接,但它也在返回值中的列名。我想通过连接列名来检索列值。请看结果。 ibb.co/dbYm6Hd以上是关于如何在 Power BI 中动态获取列名?的主要内容,如果未能解决你的问题,请参考以下文章