我不知道这是否可能,但我希望能够创建一个计算列,其中每一行依赖于它上面的行.
一个典型的例子是Fibonacci序列,其中序列由递归关系F(n) = F(n-1) + F(n-2)和种子定义F(1) = F(2) = 1.
在表格中,
Index Fibonacci
----------------
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
... ...
Run Code Online (Sandbox Code Playgroud)
我希望能够将Fibonacci列构建为计算列.
现在,我知道Fibonacci序列有一个很好的封闭形式,我可以定义
Fibonacci = (((1 + SQRT(5))/2)^[Index] - ((1 - SQRT(5))/2)^[Index])/SQRT(5)
Run Code Online (Sandbox Code Playgroud)
Fibonacci =
SUMX (
ADDCOLUMNS (
SELECTCOLUMNS (
GENERATESERIES ( 0, FLOOR ( ( [Index] - 1 ) / 2, …Run Code Online (Sandbox Code Playgroud) 设置: 类似于MSDN 论坛上的这个问题,我有一个可以在各种其他度量之间切换的度量(其中一些度量比其他度量复杂得多)。该措施看起来像这样(我的实际措施有更多情况):
VariableMeasure =
VAR ReturnType =
SELECTEDVALUE ( ParamReturnType[ReturnType] )
SWITCH (
ReturnType,
"NAV", [Nav],
"Income", [Income],
"ROI", [Roi],
"BM", [Benchmark],
BLANK ()
)
Run Code Online (Sandbox Code Playgroud)
上下文:
切换度量的原因是能够通过选择ReturnType带有切片器的来选择要在报表上显示的度量,然后所选度量在矩阵视觉中显示为列标题。例如,我的矩阵可能如下所示:
(如您所见,它没有显示,BM因为它没有被选中。)
问题:问题是,当我刚刚NAV选择该度量时,尽管它是一种廉价的计算度量,但它仍然几乎与所有选择的度量一样慢。当我使用 DAX Studio 分析查询时,应该是一个简单的查询需要大约 2.7 秒。事实上,如果我用除[Nav]切换度量之外的度量注释掉这些行,性能会显着提高,运行时间不到 100 毫秒(快 30 倍)。DAX Studio 显示公式引擎 (FE) 负责大约 2.7 秒的 99.5%,而存储引擎 (SE) 使用不到 20 毫秒。
研究: 我阅读了以下 SQL BI 文章,其中提到了惰性/严格评估和短路:
我的措施类似于第二个链接中的最后一个例子,但不像在他们的情况下那样从“短路评估”中受益。
假设我有一组回报,我想计算其β值与不同的市场指数.让我们在一个名为Returns一个具体示例的表中使用以下数据集:
Date Equity Duration Credit Manager
-----------------------------------------------
01/31/2017 2.907% 0.226% 1.240% 1.78%
02/28/2017 2.513% 0.493% 1.120% 3.88%
03/31/2017 1.346% -0.046% -0.250% 0.13%
04/30/2017 1.612% 0.695% 0.620% 1.04%
05/31/2017 2.209% 0.653% 0.480% 1.40%
06/30/2017 0.796% -0.162% 0.350% 0.63%
07/31/2017 2.733% 0.167% 0.830% 2.06%
08/31/2017 0.401% 1.083% -0.670% 0.29%
09/30/2017 1.880% -0.857% 1.430% 2.04%
10/31/2017 2.151% -0.121% 0.510% 2.33%
11/30/2017 2.020% -0.137% -0.020% 3.06%
12/31/2017 1.454% 0.309% 0.230% 1.28%
Run Code Online (Sandbox Code Playgroud)
现在在Excel中,我可以使用该LINEST函数来获取beta值:
= LINEST(Returns[Manager], Returns[[Equity]:[Credit]], TRUE, TRUE)
Run Code Online (Sandbox Code Playgroud)
它会吐出一个如下所示的数组:
0.077250253 -0.184974002 …Run Code Online (Sandbox Code Playgroud) 我需要使用 DAX 创建以下图表,而不使用 Power Query。

这必须通过以下 2 个表来完成:


有谁知道如何在不使用 Power Query 的情况下创建此图表?您可以使用日历表。
我有一张如下表:
Country, Advertiser, Brand, Spend
C1, A1, B1, 10
C1, A1, B2, 5
C1, A2, B3, 0
C1, A2, B4, 20
C2, A1, B1, 8
C2, A1, B5, 7
C2, A2, B6, 4
C2, A2, B3, 3
C2, A2, B7, 2
C2, A3, B8, 9
Run Code Online (Sandbox Code Playgroud)
我想DISTINCT COUNT按国家/地区获得品牌,这很简单:
C1 => 4
C2 => 6
Run Code Online (Sandbox Code Playgroud)
如何创建Power BI可以嵌入表格或树状图中的度量?我已经试过了:
Measure = COUNTX(DISTINCT(sourceTable),sourceTable[Brand])
Run Code Online (Sandbox Code Playgroud)
它返回DISTINCT COUNT每个国家的品牌总数(不是)...
我也在下面尝试过,但没有用:
DistinctBrandCount =
CALCULATE(DISTINCTCOUNT(SampleDataForDashboard[Brand]),
GROUPBY(SampleDataForDashboard, SampleDataForDashboard[Country]))
Run Code Online (Sandbox Code Playgroud) 我想创建一个切换按钮,用于更改查看报告的日期(按会计日期或生效日期).
目前,我按会计日期按生效日期和非活动关系存在活跃关系.
使用USERELATIONSHIP函数我能够在两个日期之前传递数据:
Total Premium by AccDate =
CALCULATE( Sum(Premiums[Premium]),
USERELATIONSHIP(Premiums[AccountingDate], Dates[Date]))
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何放置一个按钮(开关),以便最终用户只需点击该按钮(无论是生效日期还是会计日期),所有视觉效果都会根据开关显示数据?
我需要使用书签吗?或者还有其他一些技巧?
假设我有TableA和TableB那没有关系。
在TableA创建计算列计算,根据两个表中涉及多个列的复杂表达式最小值(例如,见这里我的答案)。
MinValue = MINX(TableA, [ComplexExpression])
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我真正要寻找的是ID出现最小值的行。
为了一个具体的例子,让我们看看以下内容:
TableA:
ID X Y
-------------
1 2.1 -1.3
2 3.5 0.5
3 6.5 5.9
4 3.1 4.2
5 2.8 -2.7
6 5.7 -1.5
Run Code Online (Sandbox Code Playgroud)
TableB:
ID X Y
-------------
A 2.3 2.7
B 2.8 -4.8
C 4.1 1.1
D -0.5 0.9
E -3.7 2.4
Run Code Online (Sandbox Code Playgroud)
我添加了一个计算列来TableA给出最小的欧几里德距离。
MinDist = MINX(TableB, ROUND(SQRT((TableA[X]-TableB[X])^2 + (TableA[Y]-TableB[Y])^2), 2))
Run Code Online (Sandbox Code Playgroud)
现在,我想找到对应于最近点的IDfrom TableB。也就是说,我想要下表:
ID X …Run Code Online (Sandbox Code Playgroud) 我希望创建一个度量,该度量取多个总和的平均值,并按 ID 分组。一个例子是,如果您有一个客户数据库,每个客户都购买了各种各样的东西,并且您想找到客户花费的平均金额,按客户分组所有购买的总和,然后对结果进行平均。
我已经考虑过按表分组,但如果我这样做,则过滤器将无法正确应用于结果(除非有一种方法可以在 Power BI 中创建两者之间的关系,但我还没有找到该功能)。
有没有办法创建这个度量?
编辑:对表格和目标的更简洁的解释:
输入表
CustomerID | Total Transaction Amount | Payment Type
-----------|--------------------------|-------------
1 | 10.00 | Card
1 | 5.00 | Cash
2 | 5.00 | Cash
Run Code Online (Sandbox Code Playgroud)
输出值
平均客户支出:(10.00
客户 1 花费 15 总和 10 + 5,客户 2 共花费 5)
用户点击交易类型下的现金过滤器:
平均客户支出更新为:(5.00
客户 1 总共花费了 5 次现金,客户 2 总共花费了 5 次现金)
有没有办法检查文本字段以查看它是否包含列表中的任何字符串?
要检查的示例字符串:
The raisin is green
The pear is red
The apple is yellow
Run Code Online (Sandbox Code Playgroud)
列出要验证的示例
red
blue
green
Run Code Online (Sandbox Code Playgroud)
结果将是
任何一个:
green
red
null
Run Code Online (Sandbox Code Playgroud)
或者:
TRUE
TRUE
FALSE
Run Code Online (Sandbox Code Playgroud) 在如何在Excel中创建关系矩阵中,我要求了一种在Excel中创建关系矩阵的方法-为方便起见,在此处复制:
1 A X
1 A Y
1 B X A B C
1 B Z 1 X,Y X,Z
2 A Z ==> 2 Z X Y
2 B X 3 Y Z
3 A Y
3 A Z
2 C Y
Run Code Online (Sandbox Code Playgroud)
目前,我正在评估O365 PowerBI的相同功能。有一种看起来很有希望的矩阵可视化效果,但是对于单元格数据,无法选择“全部”或“连接”操作(如TEXTJOIN)。它只有“第一”或“最后”。
有什么办法可以在PowerBI中获得该关系矩阵功能?