gpt4 book ai didi

dax - 使用 dax 转换为正确的大小写

转载 作者:行者123 更新时间:2023-12-04 16:39:37 28 4
gpt4 key购买 nike

我有一个文本列,想将其转换为正确的。有没有办法只使用 DAX 来做到这一点?我不想使用内置的 powerbi 功能
适当的大小写是将每个单词的每个第一个字母都大写的任何文本。例如,“这是一个适当案例的例子”。是适当情况下的句子示例。提示。正确的大小写不应与标题大小写混淆,标题大小写是大多数单词大写。
例如

text_column
apple bat
cab
应该改为
Text_column
Apple Bat
Cab

最佳答案

此处提供了有关如何在 DAX 中模拟 PROPER 函数的一般提示。尽管 DAX 中没有用于此的 native 函数,但这肯定是可能的。
Proper 函数的算法是:

  • 将您的字符串转换为 VAR 变量。
  • 将其转换为 LOWER。
  • 通过用 [space] 分隔符将其拆分,将其转换为列表。
  • 使用 REPLACE 函数将列表中每个字符串的第一个字母替换为 UPPER。
  • 将列表连接回字符串。

  • 这应该是一个很好的起点:
    https://community.powerbi.com/t5/Desktop/DAX-how-split-a-string-by-delimiter-into-a-list-or-array/td-p/559597
    编辑。
    以下是如何使用 DAX 将文本字符串转换为正确的大小写。
    我用另一种方式做到了。
    从示例表开始:
    Table = 
    DATATABLE(
    "ID" , INTEGER ,
    "Text" , STRING ,
    {
    { 1 , "The quick brown fox jumps over the lazy dog" } ,
    { 2 , "Happy Birthday" }
    }
    )
    然后将此 DAX 代码添加为计算列:
    Text Proper = 
    VAR SplitByCharacter = " "
    var var_text = 'Table'[Text]
    VAR Table0 =
    ADDCOLUMNS (
    GENERATE (
    CALCULATETABLE( 'Table', 'Table'[Text] = var_text ), // we shrink table to current row only
    VAR TokenCount =
    PATHLENGTH ( SUBSTITUTE ( 'Table'[Text], SplitByCharacter, "|" ) )
    RETURN
    GENERATESERIES ( 1, TokenCount )
    ),
    //"Word", PATHITEM ( SUBSTITUTE ( 'Table'[Text], SplitByCharacter, "|" ), [Value] ),
    //"cnt", PATHLENGTH ( SUBSTITUTE ( 'Table'[Text], SplitByCharacter, "|" ) ),
    "Proper",
    var word = PATHITEM ( SUBSTITUTE ( 'Table'[Text], SplitByCharacter, "|" ), [Value] )
    var word_Propper = UPPER( LEFT( word, 1 ) ) & LOWER( RIGHT( word, LEN( word) - 1 ) )
    return
    word_Propper
    )
    RETURN
    CONCATENATEX( Table0, [Proper], " " )
    我以 Phil Seamark 的文章为灵感编写了这段代码:
    https://dax.tips/2019/07/05/dax-pivot-text-into-a-list-of-words/

    关于dax - 使用 dax 转换为正确的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652947/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com