开发手册 欢迎您!
软件开发者资料库

Excel DAX - 功能

Excel DAX函数 - 从简单和简单的步骤学习Excel DAX,从基本到高级概念,包括概述,计算列,计算字段/度量,编辑计算字段,删除计算字段,语法,运算符,标准参数,函数,了解DAX函数,评估上下文,公式,更新DAX公式的结果,更新数据模型中的数据,重新计算DAX公式,排除DAX公式重新计算,公式错误,时间智能,过滤函数,方案,执行复杂计算,使用文本和日期,条件值和错误测试,使用时间智能,排名和比较值。

大多数 DAX函数具有与Excel函数相同的名称和功能.但是,DAX函数已被修改为使用DAX数据类型并使用表和列.

DAX具有一些在Excel中找不到的附加功能.这些DAX函数是为特定目的而提供的,例如基于与数据模型的关系数据库方面相关联的关系的查找,迭代表以执行递归计算,执行动态聚合以及利用时间智能进行计算的能力./p>

在本章中,您将了解DAX语言支持的功能.有关这些DAX函数用法的更多信息,请参阅教程 - 本教程库中的DAX函数.

什么是DAX函数?

DAX函数是DAX语言提供的内置函数,使您可以对数据模型中的表中的数据执行各种操作.如前所述,DAX用于数据分析和商业智能目的,需要支持从数据中提取,吸收和获取洞察力.一旦掌握了DAX语言和DAX函数的使用,基于数据模型的DAX函数为您提供了使您的工作更简单的实用程序.

Excel函数与DAX函数

您知道的Excel函数与DAX函数之间存在某些相似之处.但是,也存在一些差异.您需要弄清楚这些,以便您可以避免在使用DAX函数和编写包含DAX函数的DAX公式时出错.

Excel函数和DAX函数之间的相似性

  • 许多DAX函数与Excel函数具有相同的名称和一般行为.

  • DAX的查找函数类似于Excel中的数组和向量查找函数.

Excel函数和DAX函数之间的差异

  • DAX函数已被修改为采用不同类型的输入和一些DAX函数可能会返回不同的数据类型.因此,您需要分别了解这些函数的用法,尽管它们具有相同的名称.在本教程中,您将找到前缀为DAX的每个DAX函数,以避免与Excel函数混淆.

  • 您不能在Excel公式中使用DAX函数或使用DAX中的Excel公式/函数,无需进行必要的修改.

  • Excel函数将单元格引用或一系列单元格作为参考. DAX函数永远不会将单元格引用或一系列单元格作为参考,而是将列或表作为参考.

  • Excel日期和时间函数返回将日期表示为序列号的整数. DAX日期和时间函数返回DAX中但不在Excel中的日期时间数据类型.

  • Excel没有返回表的函数,但某些函数可以使用数组.许多DAX函数可以轻松引用完整的表和列来执行计算并返回一个表或一列值. DAX的这种能力为使用DAX的Power Pivot,Power View和Power BI增加了功能.

  • DAX查找功能要求在两者之间建立关系表格.

  • Excel支持数据列中的变体数据类型,即您可以在列中包含不同数据类型的数据.然而,DAX期望表的列中的数据始终具有相同的数据类型.如果数据的数据类型不同,DAX会将整个列更改为最适合列中所有值的数据类型.但是,如果导入数据并出现此问题,DAX可以标记错误.

了解DAX数据类型和数据类型转换,请参阅DAX语法参考一章.

DAX函数的类型

DAX支持以下类型的函数.

  • DAX表值函数

    • DAX过滤函数

    • DAX聚合函数

    • DAX时间智能函数

  • DAX日期和时间函数

  • DAX信息函数

  • DAX逻辑函数

  • DAX数学和触发函数

  • DAX其他函数

  • DAX父子函数

  • DAX统计函数

  • DAX文本函数

在本节中,您将了解函数类别级别的DAX函数.有关DAX函数语法以及DAX函数返回和执行的操作的详细信息 - 请参阅本教程库中的DAX函数教程.

DAX时间智能函数和DAX过滤器函数功能强大且需要特别提一下.有关详细信息,请参阅章节 - 了解DAX时间智能和DAX过滤器函数.

DAX表值函数

许多DAX函数将表作为输入或输出表或两者兼而有之.这些DAX函数称为DAX表值函数.由于表可以有一个列,因此DAX表值函数也会将单个列作为输入.您有以下类型的DAX表值函数 :

  • DAX聚合函数

  • DAX过滤函数

  • DAX时间智能函数

了解DAX表值函数可以帮助您有效地编写DAX公式./p>

DAX聚合函数


DAX聚合函数聚合表中各行的任何表达式,在计算中很有用.

以下是一些DAX聚合函数 :


  • ADDCOLUMNS(< table>,< name>,< expression>,[< name>,< expression> ;] ...)

  • AVERAGE(< column>)

  • AVERAGEA(< column>)

  • AVERAGEX(< table>,< expression>)

  • COUNT(< column>)

  • COUNTA(< column>)

  • COUNTAX(< table>,< expression>)

  • COUNTBLANK(< column>)

  • COUNTROWS(

    )

  • COUNTX(< table>,< expression>)

  • CROSSJOIN(< table1>,< table2>,[< table3>] ...)

  • DISTINCTCOUNT(< column>)

  • GENERATE(< table1>,< table2>)

  • GENERATEALL(< table1> ;,< table2>)

  • MAX(< column>)

  • MAXA(< column>)

  • MAXX(< table>,< expression>)

  • MIN(< column>)

  • MINA(< column>)

  • MINX(< table>,< expression>)

  • PRODUCT(< column>)

  • PRODUCTX(< table>,< expression>)

  • ROW(< name>,< expression> ;,[< name>,< expression>] ...)

  • SELECTCOLUMNS(< table>,< name>,< scalar_expression>,

  • [< name>,< scalar_expression>] ...)

  • SUM (< column>)

  • SUMMARIZE(< table>,< groupBy_columnName>,[< groupBy_columnName>] ...,[< name>, < expression>] ...)

  • SUMX(< table>,< expression>)

  • TOPN(< n_value>,< table>,< orderBy_expression>,[< order>],[< orderBy_expression>,[< order>]] ...)

  • DAX过滤器函数

    DAX过滤器函数返回一列,表或与当前行相关的值.您可以使用DAX过滤器函数返回特定数据类型,在相关表中查找值,并按相关值过滤. DAX查找功能通过使用表和它们之间的关系来工作. DAX过滤器函数使您能够操纵数据上下文以创建动态计算.

    以下是一些DAX过滤器函数 :


    • ADDMISSINGITEMS(< ; showAllColumn>,[< showAllColumn>] ...,< table>,< groupingColumn>,[< groupingColumn>] ... [filterTable] ...)

    • ALL({< table> |< column>,[< column>],[< column>] ...})

    • ALLEXCEPT (< table>,< column>,[< column>] ...)

    • ALLNOBLANKROW(< table> |< column>)

    • ALLSELECTED([< tableName> |< columnName>])

    • CALCULATE (,< filter1>,< filter2> ...)

    • CALCULATETABLE(< expression>,< filter1>,< filter2> ; ...)

    • CROSSFILTER(< columnName1>,< columnName2>,< direction>)

    • DISTINCT(< column>)

    • EARLIER(< column>,< number>)

    • EARLIEST(< column>)

    • FILTER(< table>,< filter>)

    • FILTERS(< columnName>)

    • HASONEFILTER(< columnName>)

    • HASONEVALUE(< columnName>)

    • ISCROSSFILTERED(< columnName>)

    • ISFILTERED(< columnName>)

    • KEEPFILTERS(< expression>)

    • RELATED(< column>)

    • RELATEDTABLE(< tableName>)

    • SUBSTITUTEWITHINDEX(< table>,< indexColumnName>,< indexColumnsTable>,< orderBy_expression>,[< order>],[< orderBy_expression>,[< order>]] ...])

    • USERELATIONSHIP(< columnName1>,< columnName2>)

    • VALUES( < TableNameOrColumnName>)

    DAX时间智能函数

    DAX Time Intelligence函数返回日期表或使用日期表来计算聚合.这些DAX功能可帮助您创建支持商业智能分析需求的计算,使您能够使用时间段(包括天,月,季度和年)来操纵数据.

    以下是一些DAX时间智能函数 :


    • CLOSINGBALANCEMONTH(< expression>,< dates> [,< filter>])

    • CLOSINGBALANCEQUARTER(< expression>,< dates>,[< filter>])

    • CLOSINGBALANCEYEAR(< expression>,< ; date>,[< filter>],[< year_end_date>])

    • DATEADD(< dates>,< number_of_intervals>,<区间>)

    • DATESBETWEEN(< date>,< start_date>,< end_date>)

    • DATESINPERIOD(< date>,< start_date>,< number_of_intervals>,< inte rval>)

    • DATESMTD(< dates>)

    • DATESQTD()

    • DATESYTD(< dates>,[< year_end_date>])

    • ENDOFMONTH(< date>)

    • ENDOFQUARTER(< dates>)

    • ENDOFYEAR(< dates> ,[< year_end_date>])

    • FIRSTDATE(< dates>)

    • FIRSTNONBLANK(< column>,< expression>)

    • LASTDATE(< dates>)

    • LASTNONBLANK(< column>,< expression>)

    • NEXTDAY(< dates>)

    • NEXTMONTH(< dates>)

    • NEXTQUARTER(< dates>)

    • NEXTYEAR(< dates>,[< year_end_date>])

    • OPENINGBALANCEMONTH(< expression>, < dates>,[< filter>])

    • OPENINGBALANCEQUARTER(< expression>,< dates>,[< filter>])

    • OPENINGBALANCEYEAR(< expression>,< dates>,[< filter>],[< year_end_date>])

    • PARALLELPERIOD(< date>,< number_of_intervals>,< interval>)

    • PREVIOUSDAY()

    • PREVIOUSMONTH(< dates>)

    • P REVIOUSQUARTER(< dates>)

    • PREVIOUSYEAR(< dates>,[< year_end_date>])

    • SAMEPERIODLASTYEAR(< dates>)

    • STARTOFMONTH(< dates>)

    • STARTOFQUARTER(< dates>)

    • STARTOFYEAR(< dates>)

    • TOTALMTD(,< date>,[< filter>])

    • TOTALQTD(< expression> ,< dates>,[< filter>])

    • TOTALYTD(< expression>,< dates>,[< filter>], [< year_end_date>])

    DAX日期和时间函数

    DAX日期和时间功能类似于Excel日期和时间功能.但是,DAX日期和时间函数基于DAX的日期时间数据类型.

    以下是DAX日期和时间函数 :


    • DATE (< year>,< month>,< day>)

    • DATEVALUE(date_text)

    • DAY(< date>)

    • EDATE(< start_date>,< months>)

    • EOMONTH(< start_date>,< months>)

    • HOUR(< datetime>)

    • MINUTE(< datetime>)

    • MONTH(< datetime>)

    • NOW()

    • SECOND(< time>)

    • TIME(hour, minute, second)

    • TIMEVALUE(time_text)

    • TODAY()

    • WEEKDAY(< date>,< return_type> ;)

    • WEEKNUM(< date>,< return_type>)

    • YEAR(< date>)

    • YEARFRAC(< start_date>,< end_date>,< ba sis>)

    DAX信息函数

    DAX信息函数查看作为参数提供的单元格或行,并告诉您该值是否与预期类型匹配.

    以下是一些DAX信息函数 :


    • CONTAINS(< table>,< columnName>,< value>,[< columnName>,< value>] ...)

    • CUSTOMDATA()

    • ISBLANK(< value>)

    • ISERROR(< value>)

    • ISEVEN(number)

    • ISLOGICAL()

    • ISNONTEXT(< value>)

    • ISNUMBER(< value>)

    • ISONORAFTER(< scalar_expression>,< scalar_expression>,[sort_order],[< scalar_expression>,< scalar_expression>, [sort_order]] ...)

    • ISTEXT(< value>)

    • LOOKUPVALUE (< result_columnName>,< search_columnName>,< search_value>,[< search_columnName>,< search_value>] ...)

    • USERNAME()

    DAX逻辑函数

    DAX逻辑函数返回有关表达式中的值的信息.例如,DAX TRUE函数可以让您知道您正在评估的表达式是否返回TRUE值.

    以下是DAX逻辑函数 :


    • AND (< logical1>,< logical2>)

    • FALSE()

    • IF(logical_test>,< value_if_true>,value_if_false)

    • IFERROR(value,value_if_error)

    • NOT(< logical>)

    • OR(< logical1> ,< logical2>)

    • SWITCH(< expression>,< value>,< result>,[< value>,< result>] ...,[])

    • TRUE()

    DAX数学和触发函数

    DAX数学和三角函数与Excel数学和三角函数非常相似.

    以下是一些DAX Math和Trig函数 :


    • ABS()

    • ACOS(number)

    • ACOSH(number)

    • ASIN(number)

    • ASINH(number)

    • ATAN(number)

    • ATANH(number)

    • CEILING(, )

    • COMBIN(number, number_chosen)

    • COMBINA(number, number_chosen)

    • COS(number)

    • COSH(number)

    • CURRENCY()

    • DEGREES(angle)

    • DIVIDE(, , [])

    • EVEN(number)

    • EXP()

    • FACT()

    • FLOOR(, )

    • GCD(number1, [number2], ...)

    • INT()

    • ISO.CEILING(, [])

    • LCM(number1, [number2], ...)

    • LN()

    • LOG(,)

    • LOG10()

    • INT()

    • MROUND(, )

    • ODD(number)

    • PI()

    • POWER(, )

    • PRODUCT()

    • PRODUCTX(

    , )

  • QUOTIENT(, )

  • RADIANS(angle)

  • RAND()

  • RANDBETWEEN(,)

  • ROUND(, )

  • ROUNDDOWN(, )

  • ROUNDUP(, )

  • SIN(number)

  • SINH(number)

  • SIGN()

  • SQRT()

  • SUM()

  • SUMX(

  • , )

  • TAN(number)

  • TANH(number)

  • TRUNC(,)

  • DAX其他函数

    这些DAX函数执行大多数其他函数所属的任何类别都无法定义的唯一操作to.

    以下是一些DAX其他函数 :


    • EXCEPT(< table_expression1>,< table_expression2>

    • GROUPBY(< table>,[< groupBy_columnName1>],[< name>,< expression>] ...)

    • INTERSECT(< table_expression1>,< table_expression2>)

    • ISEMPTY(< table_expression>)

    • NATURALINNERJOIN(< leftJoinTable>,< rightJoinTable>)

    • NATURALLEFTOUTERJOIN(< leftJoinTable>, < rightJoinTable>)

    • SU MMARIZECOLUMNS(< groupBy_columnName>,[< groupBy_columnName>] ...,[< filterTable>] ...,[< name>,< expression>] ...)

    • UNION(< table_expression1>,< table_expression2>,[< table_expression>] ...)

    • VAR< name> =< expression>

    DAX父子功能

    DAX父和子函数可用于管理在数据模型中作为父/子层次结构显示的数据.

    以下是一些DAX父和子函数 :  ;


    • PATH(< ID_columnName>,< parent_columnName>)

    • PATHCONTAINS(< path>,< item>)

    • PATHITEM(< path>,< position>,[< type>])

    • PATHITEMREVERSE(< path>,< position> ,[< type>])

    • PATHLENGTH(< path>)

    DAX统计函数

    DAX统计函数与Excel统计函数非常相似.

    以下是一些DAX统计函数 :


    • BETA.DIST(x, alpha, beta, cumulative,[A],[B])

    • BETA.INV(probability, alpha, beta,[A],[B])

    • CHISQ.INV(probability, deg_freedom)

    • CHISQ.INV.RT(probability, deg_freedom)

    • CONFIDENCE.NORM(alpha, standard_dev, size)

    • CONFIDENCE.T(alpha, standard_dev, size)

    • DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2 ..., {{Value1, Value2...}, {ValueN, ValueN+1...}...})

    • EXPON.DIST(x, lambda, cumulative)

    • GEOMEAN()

    • GEOMEANX(

    , )

  • MEDIAN()

  • MEDIANX(

  • , )

  • PERCENTILE.EXC(, )

  • PERCENTILE.INC(, )

  • PERCENTILEX.EXC(

  • , , k)

  • PERCENTILEX.EXC(

  • , , k)

  • POISSON.DIST(x, mean, cumulative)

  • RANK.EQ(, [, ])

  • RANKX(

  • , [, [, [, ]]])

  • SAMPLE (,

  • , , [], [, []]…)

  • STDEV.P()

  • STDEV.S()

  • STDEVX.P(

  • , )

  • STDEVX.S(

  • , )

  • SQRTPI(number)

  • VAR.P()

  • VAR.S()

  • VARX.P(

  • , )

  • VARX.S(

  • , )

  • XIRR(

  • , , , [guess])

  • XNPV(

  • , , , )

    DAX文字函数

    DAX文本函数适用于表和列.使用DAX Text函数,您可以返回字符串的一部分,在字符串中搜索文本或连接字符串值.您还可以控制日期,时间和数字的格式.

    以下是一些DAX文字功能 :


    • BLANK()

    • CODE(text)

    • CONCATENATE(, )

    • CONCATENATEX(

    , , [delimiter])

  • EXACT(,)

  • FIND(, , [], [])

  • FIXED(, , )

  • FORMAT(, )

  • LEFT(, )

  • LEN()

  • LOWER()

  • MID(, , )

  • REPLACE(, , , )

  • REPT(, )

  • RIGHT(, )

  • SEARCH(, , [], [])

  • SUBSTITUTE(, , , )

  • TRIM()

  • UPPER ()

  • VALUE()

  • 2009-2024 Copyright Wonhero.Com All Rights Reserved
    深圳幻海软件技术有限公司 版权所有