[知识体系] 文本函数

  [复制链接]
查看95692 | 回复111 | 2021-2-21 19:30:54 | 显示全部楼层 |阅读模式
了解文本函数


DAX 中几乎所有可用的文本函数都与 Excel 类似, 只有少数例外:它们是 CONCATENATE, EXACT,FIND, FIXED, FORMAT, LEFT, LEN, LOWER, MID, REPLACE, REPT, RIGHT, SEARCH, SUBSTITUTE, TRIM, UPPERVALUE. 这些函数对于操作文本和从包含多个值的字符串中提取数据非常有用。

实例

例如,下图中,你可以看到一个从字符串中提取名和姓的示例,该字符串包含用逗号分隔的值,中间是标题,我们希望将其删除。


7133211936391.jpeg

使用文本函数提取姓名的示例


我们从计算两个逗号的位置开始,然后使用代表位置的数字提取文本的目标部分。SimpleConversion 列使用的公式在字符串少于两个逗号时可能会返回错误值 (如果压根没有逗号,则会引发错误),而 FirstLastName 列使用了一个更复杂的表达式,不会在缺少逗号的情况下失败:
  1. Comma1 = IFERROR ( FIND ( ",", People[Name] ), BLANK ( ) )

  2. Comma2 = IFERROR ( FIND ( ",", People[Name], People[Comma1] +1 ), BLANK ( ) )

  3. SimpleConversion =
  4. MID (
  5.     People[Name],
  6.     People[Comma2] + 1,
  7.     LEN ( People[Name] )
  8. ) & " "
  9.     & LEFT (
  10.         People[Name],
  11.         People[Comma1] - 1
  12.     )

  13. FirstLastName =
  14. TRIM (
  15.     MID (
  16.         People[Name],
  17.         IF (
  18.             ISNUMBER ( People[Comma2] ),
  19.             People[Comma2],
  20.             People[Comma1]
  21.         ) + 1,
  22.         LEN ( People[Name] )
  23.     )
  24. )
  25.     & IF (
  26.         ISNUMBER ( People[Comma1] ),
  27.         " "
  28.             & LEFT (
  29.                 People[Name],
  30.                 People[Comma1] - 1
  31.             ),
  32.         ""
  33.     )
复制代码

如你所见,FirstLastName 列是由一个很长的 DAX 表达式定义的,但是你必须使用它来避免可能的错误,因为如果单个值产生错误,就会传递到整个列。
虽然 DAX 具备提取从文本中提取数据的能力,但建议你尽量在编辑查询阶段或数据库中提前完成类似操作,避免在模型中进行数据清洗。
回复

使用道具 举报

树仔 | 2021-4-24 17:48:02 来自手机 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复

使用道具 举报

力仔 | 2021-4-29 13:48:05 来自手机 | 显示全部楼层
有空一起交流一下
回复

使用道具 举报

procar | 2021-9-9 14:50:16 来自手机 | 显示全部楼层
加油站加油
回复

使用道具 举报

freyayi | 2021-9-14 10:50:16 | 显示全部楼层
秀起来~
回复

使用道具 举报

绯村剑心 | 2021-10-14 18:34:43 | 显示全部楼层
众里寻他千百度,蓦然回首在这里!
回复

使用道具 举报

wds | 2021-10-16 20:11:16 | 显示全部楼层
啥玩应呀
回复

使用道具 举报

メ阿ǒ瑞メ | 2021-10-19 11:54:21 | 显示全部楼层
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
回复

使用道具 举报

heaton | 2021-10-27 19:00:49 | 显示全部楼层
支持一下,天天来这学习
回复

使用道具 举报

小晖 | 2021-11-9 11:21:11 | 显示全部楼层
这套视频很不错!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则