📅  最后修改于: 2020-12-01 04:52:03             🧑  作者: Mango
DAX可用于涉及与文本一起工作,提取和组合日期和时间值或基于条件创建值的场景。您可以使用DAX执行以下操作-
PowerPivot中的数据模型仅允许一个键列。它不支持您可能在外部数据源中找到的组合键。因此,如果数据源中的表中存在任何组合键,则需要将它们组合到数据模型中表的单个键列中。
您可以使用DAX函数CONCATENATE将两列合并为数据模型表中的单列。 DAX函数CONCATENATE将两个文本字符串连接为一个文本字符串。合并的项目可以是文本,数字或表示为文本的布尔值,也可以是这些项目的组合。如果列包含适当的值,则也可以使用列引用。
= CONCATENATE ([Column1], [Column2])
DAX CONCATENATE函数仅接受两个参数。如果任何参数都不是文本数据类型,则将其转换为文本。 DAX CONCATENATE函数返回串联的字符串。
Power Pivot中的数据模型支持日期和时间值的数据类型datetime。用于日期和/或时间值的DAX函数需要参数的日期时间数据类型。
如果您的数据源包含不同格式的日期,则需要首先使用DAX公式提取日期部分,然后将这些部分组合以构成有效的DAX日期时间数据类型。
您可以使用以下DAX函数提取和撰写日期-
DATE-以日期时间格式返回指定的日期。
DATEVALUE-将文本形式的日期转换为datetime格式的日期。
TIMEVALUE-将文本格式的时间转换为日期时间格式的时间。
假设数据源中的日期没有以标准格式表示。您可以定义自定义日期格式以确保正确处理值。 DAX FORMAT函数使您可以根据指定的格式将值转换为文本。
FORMAT (, )
FORMAT函数返回一个字符串,该字符串包含由format_string定义的格式的值。
您可以使用预定义的日期和时间格式,也可以为FORMAT函数的参数format_string创建用户定义的日期和时间格式。
以下是预定义的日期和时间格式名称。如果您使用这些预定义的字符串其他字符串,它们将被解释为自定义日期和时间格式。
S. No. | Format_String & Description |
---|---|
1 |
“General Date” Displays a date and/or time. For example, 2/10/2015 10:10:32 AM |
2 |
“Long Date” or “Medium Date” Displays a date according to long date format. For example, Wednesday, March 07, 2016 |
3 |
“Short Date” Displays a date using short date format. For example, 2/03/2016 |
4 |
“Long Time” Displays a time using long time format. Typically includes hours, minutes and seconds. For example, 10:10:32 AM |
5 |
“Medium Time” Displays a time in 12-hour format. For example, 09:30 PM |
6 |
“Short Time” Displays a time in 24-hour format. For example, 14:15 |
或者,您可以使用下表中的字符来创建用户定义的日期/时间格式。
S. No. | Character & Description |
---|---|
1 |
: Time separator. Time separator. Separates hours, minutes, and seconds when time values are formatted. |
2 |
/ Date separator. Separates the day, month, and year when date values are formatted. |
3 |
% Used to indicate that the following character should be read as a single-letter format without regard to any trailing letters. Also used to indicate that a single-letter format is read as a userdefined format. |
以下是各种字符的详细信息。
%d-将日期显示为没有前导零(例如5)的数字。
%dd-将日期显示为以零开头的数字(例如05)。
%ddd-将日期显示为缩写(例如,Sun)。
%dddd-将日期显示为全名(例如,星期日)。
%M-将月份显示为没有前导零的数字(例如,一月表示为1)。
%MM-将月份显示为带有前导零的数字(例如,一月表示为01)。
%MMM-将月份显示为缩写(例如,一月表示为一月)。
%MMMM-将月份显示为完整的月份名称(例如,一月)。
%gg-显示期间/时代字符串(例如AD)。
%h-使用12小时制(例如1:15:15 PM)将小时显示为不带前导零的数字。如果这是用户定义的数字格式中的唯一字符,请使用%h 。
% hh-使用12小时制(例如01:15:15 PM)将小时显示为以零开头的数字。
%H-使用24小时制将小时显示为不带前导零的数字(例如13:15:15、1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用%H。
% HH-使用24小时制将小时显示为以零开头的数字(例如13:15:15、1:15:15)。
%m-将分钟显示为没有前导零的数字(例如2:1:15)。如果这是用户定义的数字格式中的唯一字符,请使用%m。
%mm-将分钟显示为带前导零的数字(例如2:01:15)。
%s-将秒显示为不带前导零的数字(例如2:15:5)。如果这是用户定义的数字格式中的唯一字符,请使用%s。
%ss-将秒显示为带有前导零的数字(例如2:15:05)。
%f-显示秒的分数。例如, ff显示百分之一秒,而ffff显示百分之一秒。您可以使用用户定义的格式使用最多七个f符号。如果这是用户定义的数字格式中的唯一字符,请使用%f 。
%t –使用12小时制,在中午之前的任何小时显示大写A;在中午和晚上11:59 PM之间的任何时间显示大写字母P,如果这是用户定义的数字格式中的唯一字符,请使用%t。
%tt-对于使用12小时制的语言环境,在中午之前的任何时间显示大写AM。在中午和晚上11:59 PM之间的任何时间显示大写PM。对于使用24小时制的语言环境,不显示任何内容。
%y-显示年份数字(0-9),不带前导零。如果这是用户定义的数字格式中的唯一字符,请使用%y 。
%yy-如果适用,则以两位数的数字显示年份,并带有前导零。
%yyy-以四位数字格式显示年份。
%yyyy-以四位数字格式显示年份。
%z-显示时区偏移量,不带前导零(例如-8)。如果这是用户定义的数字格式中的唯一字符,请使用%z 。
%zz-显示。时区偏移量带有前导零(例如-08)
%zzz-显示完整的时区偏移量(例如-08:00)。
如您所见,格式化字符串区分大小写。通过使用不同的情况下可以获得不同的格式。
在DAX公式中,输出的数据类型由源列确定,并且您不能显式指定结果的数据类型。这是因为最佳数据类型由Power Pivot确定。但是,您可以使用Power Pivot执行的隐式数据类型转换来操纵输出数据类型。否则,您可以使用某些DAX函数来转换输出数据类型。
使用隐式数据类型转换
要将日期或数字字符串转换为数字,请乘以1.0。例如,=(TODAY()+ 5)* 1.0。此公式计算当前日期加上5天,并将结果转换为整数值。
要将日期,数字或货币值转换为字符串,请将该值与空字符串。例如,= Today()和“”
使用DAX函数进行数据类型转换
您可以将DAX功能用于以下用途-
您将在以下各节中学习。
您可以使用以下DAX函数将实数转换为整数-
ROUND(
CEILING(
FLOOR(
您可以使用以下DAX函数将实数,整数或日期转换为字符串-
已修正(
FORMAT(
您已经了解了使用Format函数将日期转换为字符串。
您可以使用以下DAX函数将字符串转换为实数或日期-
VALUE(
DATEVALUE(date_text) -将文本形式的日期转换为日期时间格式的日期。
TIMEVALUE(time_text) -将文本格式的时间转换为日期时间格式的时间。