人生没有彩排
每一天都是现场直播

进阶篇

54、时间智能函数(二) - 枫言枫语

54、时间智能函数(二)

本篇文章将介绍时间智能函数中的 STARTOF 与 ENDOF 这两个系列的函数,以及由它们所衍生而来的 OPENINGBALANCE 和 CLOSINGBALANCE 这两个系列的函数。 注意,在使用时间智能函数时需要创建日期表,虽然目前...

夕枫评论(0)

53、时间智能函数(一) - 枫言枫语

53、时间智能函数(一)

本篇文章将介绍时间智能函数中的 DATESBETWEEN 函数与 DATESINPERIOD 函数。 注意,在使用时间智能函数时需要创建日期表,虽然目前的时间智能函数已经优化了很多次,许多限制都已经放开,但创建日期表仍然是一个最佳实践,能够...

夕枫评论(0)

52、理解FIRSTDATE和LASTDATE - 枫言枫语

52、理解FIRSTDATE和LASTDATE

FIRSTDATE 和 LASTDATE 函数可以用来获取第一个日期和最后一个日期,并以表的形式返回,在用作CALCULATE函数的内部筛选器参数时可以有效简化代码的书写。 语法和作用 语法: FIRSTDATE ( <Dates&g...

夕枫评论(0)

50、理解UNION函数 - 枫言枫语

50、理解UNION函数

UNION函数属于集合函数,可以对表实现数学定义上的取并集操作,将返回多个表纵向追加后的所有行形成的单个表。 语法和作用 语法: UNION ( <Table1>, <Table2>, [<TableN>...

夕枫评论(0)

49、理解EXCEPT函数 - 枫言枫语

49、理解EXCEPT函数

EXCEPT函数属于集合函数,可以对表实现数学定义上的取差集操作,将返回只存在其中一个表中的行。 语法和作用 语法: EXCEPT ( <LeftTable>, <RightTable> ) 作用:对左右两个表取差集...

夕枫评论(0)

48、理解INTERSECT函数 - 枫言枫语

48、理解INTERSECT函数

INTERSECT函数属于集合函数,可以对表实现数学定义上的取交集操作,将返回两个表中都具有的相同行。 语法和作用 语法: INTERSECT ( <LeftTable>, <RightTable> ) 作用:对左右...

夕枫评论(0)

47、理解GROUPBY函数 - 枫言枫语

47、理解GROUPBY函数

GROUPBY函数与SUMMARIZE函数非常类似,都是用来做分组聚合的函数,但GROUPBY函数可能更符合平时所理解的分组操作。 因为GROUPBY函数的派生列参数中不提供任何计值上下文,它使用CURRENTGROUP函数来指代被分组的表...

夕枫评论(0)

46、理解SUMMARIZE函数 - 枫言枫语

46、理解SUMMARIZE函数

SUMMARIZE函数也是DAX的核心函数之一,它可以对表进行分组并添加派生列,可以很方便的对数据进行透视聚合。 语法和作用 语法: SUMMARIZE (<table>, <groupBy_columnName>[...

夕枫评论(0)

45、理解GENERATE函数 - 枫言枫语

45、理解GENERATE函数

GENERATE函数也可以生成笛卡尔积组合,但与CROSSJOIN函数不同的是,GENERATE函数可以根据不同行来与不同的表产生笛卡尔积。 语法和作用 语法:GENERATE ( Table1, Table2 ) 作用:对Table1的每...

夕枫评论(0)

44、理解CROSSJOIN函数 - 枫言枫语

44、理解CROSSJOIN函数

CROSSJOIN函数可以生成多个表的笛卡尔积组合,经常被用于模拟视觉对象的计值环境,以及处理明细正确但总计不正确等场景。 语法和作用 语法: CROSSJOIN ( table1, table2, [tableN... ] ) 作用:返回...

夕枫评论(0)

43、理解TOPN函数 - 枫言枫语

43、理解TOPN函数

TOPN函数也是必须掌握的函数,它可以返回指定表按指定条件进行排序后的前N行,经常用于计算头部产品或客户等分析场景。 语法和作用 语法: TOPN(n_value, table, orderBy_expression, [order[, o...

夕枫评论(0)

42、理解RANKX函数 - 枫言枫语

42、理解RANKX函数

RANKX函数是DAX函数中的核心函数之一,可以用来对数据进行排名,虽然有些窗口函数也可以实现排名,但RANKX仍然是必须要掌握的函数。 语法和作用 语法: RANKX(table, expression[, value[, order[,...

夕枫评论(0)

41、理解SELECTEDVALUE函数 - 枫言枫语

41、理解SELECTEDVALUE函数

SELECTEDVALUE函数也是使用频率比较高的一个函数,经常用于获取切片器或矩阵行列标签等筛选器中被筛选的单个值。 语法和作用 语法: SELECTEDVALUE(columnName[,alternateResult]) 作用:如果指...

夕枫评论(0)

40、理解HASONEFILTER函数 - 枫言枫语

40、理解HASONEFILTER函数

HASONEFILTER函数与HASONEVALUE函数基本一模一样,唯一区别就在于,HASONEVALUE函数考虑的是交叉筛选,而HASONEFILTER函数只考虑其参数所指定列的直接筛选,除此之外,它们的行为全都一致。 语法和作用 语法...

夕枫评论(0)

39、理解HASONEVALUE函数 - 枫言枫语

39、理解HASONEVALUE函数

HASONEVALUE函数的使用频率也很高,它可以判断指定列的可见数据去重后是不是只有一个值,经常用于判断矩阵所处的层级,以及作为将表当作标量值来使用时的保护机制。 语法和作用 语法:HASONEVALUE(columnName) 作用:如...

夕枫评论(0)

38、理解SELECTCOLUMNS函数 - 枫言枫语

38、理解SELECTCOLUMNS函数

SELECTCOLUMNS函数与ADDCOLUMNS函数非常类似,SELECTCOLUMNS函数也是迭代表的每一行并计算所给的表达式,最后给表添加新列,但它最终只返回新添加的派生列,而不会返回原有列。 语法和作用 语法: SELECTCOL...

夕枫评论(0)

37、理解ADDCOLUMNS函数 - 枫言枫语

37、理解ADDCOLUMNS函数

ADDCOLUMNS函数是一个表函数,同时也是迭代函数,它会像计算列一样,迭代表的每一行并计算所给的表达式,最后给表添加一个新列。 语法和作用 语法: ADDCOLUMNS(table_expression, name, expressio...

夕枫评论(0)

36、理解自动匹配(Auto-Exists) - 枫言枫语

36、理解自动匹配(Auto-Exists)

自动匹配(Auto-Exists)是DAX引擎的一个优化机制,主要目的是为了剔除无效运算来提升计算速度。但自动匹配的优化机制除了会影响底层实现外,它还会对计值环境造成影响,如果不理解这个机制的话很容易就会出现错误,特别是这个优化机制本身就存...

夕枫评论(0)

35、理解数据沿袭 - 枫言枫语

35、理解数据沿袭

数据沿袭(Data Lineage)是一个很重要且设计很巧妙的特性,它决定了各种筛选器能否筛选模型中的数据,以及使用什么姿势来筛选。同时,DAX引擎以一种自然且直观的方式来处理数据沿袭的复杂性,在编写表达式时通常不需要考虑它,以至于大多数用...

夕枫评论(0)