Power bi:将数字列表转换为简短的月份名称列表

时间:2020-09-09 07:37:26

标签: powerbi dax

我有一列包含此格式的字符串的幂次幂:

6,7,8,9
1,2,3,4
12,1,2

我的目标是将其转换为缩写的月份名称,即

Jun,Jul,Aug,Sep
Jan,Feb,Mar,Apr
Dec,Jan,Feb

我确实做了一些尝试,例如我尝试使用搜索功能并将其连接起来,简短示例如下:

    CONCATENATE(
    IF(
        ISERROR(
                search("4",MyTable[month_number_column])
        )=true,
        "",
        "Apr"
    )

因此,我将所有月份中的12个全部处理,然后将它们全部合并为一个,但是,在某些特殊情况下,我似乎无法正确处理:

数字1也包含在10,11和12中,类似地是 数字2也包含在12中,因此我的转换无法完全正常进行,因此我尝试使用if-tests解释这些特殊情况,但无法正确处理。

有什么想法吗?是否可能以某种方式使用generate series?也许可以这样做吗?

var variable_table = generateseries(1,4)
var add_column_to_variable_table = 
ADDCOLUMNS(variable_table,"Month_name_short",
     "INSERT IF TESTS HERE TO TRANSLATE EACH ROW NUMBER INTO MONTHNAME)
var final_transform = concatenatex(add_column_to_variable_table,Month_name_short,",")

2 个答案:

答案 0 :(得分:1)

一个简单的公式:

Month = FORMAT(DATEVALUE("2020-" & [month_number] & "-1") , "MMMM") 

如果要使用简写形式,请改用MMM

答案 1 :(得分:0)

如果您要寻找度量,则可以使用以下代码。由于10、11、12中还有1,而12中也有2,因此您需要先转换10,11&12,然后再转换其他数字。

month name = 
SUBSTITUTE(
    SUBSTITUTE(
        SUBSTITUTE(
            SUBSTITUTE(
                SUBSTITUTE(
                    SUBSTITUTE(
                        SUBSTITUTE(
                            SUBSTITUTE(
                                SUBSTITUTE( 
                                    SUBSTITUTE(
                                        SUBSTITUTE(
                                            SUBSTITUTE(
                                                MIN('month value to name'[month value]),
                                                "12","December"
                                            ),
                                            "11","November"
                                        ),
                                        "10","October"
                                    ),
                                    "1","January"
                                ),
                                "2","February"
                            ),
                            "3","March"
                        ),
                        "4","April"
                    ),
                    "5","May"
                ),
                "6","June"
            ),
            "7","July"
        ),
        "8","August"
    ),
    "9","September"
)

对于自定义列,只需使用“月份值命名” [[月份值] ”代替 MIN(“月份名称命名” [月值] )

注意:,如果您希望从Power Query Editor中获得相同的结果,也可以在 Power / M Query 中进行一些转换。