如何在 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 您的表并将所有月份数据放入两列 - AttributeValue,其中属性中的值将是旧列的名称,您可以使用标准过滤找到你要找的东西。

【讨论】:

嗨@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 中动态获取列名?的主要内容,如果未能解决你的问题,请参考以下文章

power query展开表时动态获取要展开的列

power bi如何抓取连续的分秒

Power BI Python 在Power BI Desktop中Python代码如何使用Power Query数据

如何从 Power BI 中的月份编号获取月份名称?

在 Power BI 中拆分自定义字段

如何在 Power BI 中使用 DAX 获取柱形图的平均列百分比度量?