希望您做得不错,并且可以帮助DAX for PowerBI和PowerPivot解决这个难题。
在小计和总计中,我的度量出现问题。我的场景如下:
我有3个表(我在下面与一个测试文件共享一个链接,因此您可以查看它并在其中工作:robothappy:)
1)“数据”(其中每个寄存器都是公交公司出售的车票);
2)“ Km”(在这里我可以找到公共汽车可以行驶各自公里的所有可能轨迹)。与“数据”相关;
3)和“日历”。与“数据”相关。
在“数据”中,我具有一段时间内售出的所有机票,包括其价格,乘客购买的轨道以及该轨道的出发时间。
每条轨道的出发时间可以超过1个(我们可以将其称为服务),但只有一个特定的长度(以公里为单位)(其公里数在“公里”表中指定)。
基本上,我需要计算一个时段(年,月,日)中每项服务的每公里收入。
计算应该基本上是:
[价格]的总和(该期间售出的每张机票)/ [Km]的总和(该期间考虑服务的公里数)
我设法通过以下逻辑和度量来针对天粒度进行计算:
Revenue = SUM(Data[Price])
Unique dates = DISTINCTCOUNT(Data[Date])
Revenue/Km = DIVIDE([Revenue]; SUM(Km[Km])*[Unique dates]; 0)
我创建了[唯一日期]来进行计算,因为我尝试管理跟踪粒度的小计,同时考虑到您可以在此期间提供超过1天的服务。例如:
对于“ Track 1”,我们已经注册:
星期一(农历)凌晨5:00进行1次服务。
Revenue = $1.140.
Km = 115.
Tickets = 6.
Revenue/Km = 1.140/115 = 9,91.
周二(商场)上午5:00有1条服务。
Revenue = $67.
Km = 115.
Tickets = 2.
Revenue/Km = 67/115 = 0,58.
“小计音轨1”应为:
Revenue = 1.140 + 67 = 1.207.
Km = 115 + 115 = 230.
Tickets = 6 + 2 = 8.
Revenue/Km = 1.207/230 = 5,25.
因此,在那种情况下,有人可以认为我的公式起作用了,但是当我每天有1次以上的服务时,例如在Track 3中,您会看到它的问题。这也影响了行军的总数(marzo)
我知道问题是要计算每个时期每个轨道的正确公里数。如果您检查“ Sum [Km]”列也是错误的。
这是一张表格(要下载的Excel文件-“目标”标签),其中包含应显示的值:
[目标] https://drive.google.com/file/d/1PMrc-IUnTz0354Ko6q3ZvkxEcnns1RFM/view?usp=sharing
[pbix示例文件] https://drive.google.com/file/d/14NBM9a_Frib55fvL-2ybVMhxGXN5Vkf-/view?usp=sharing
希望您能理解我的问题。如果您需要更多详细信息,请告诉我。
非常感谢您!
安迪。-
答案 0 :(得分:1)
删除“总和”-您应该始终编写DAX度量值。
为行驶的公里数创建新的度量标准:
Total Km =
SUMX (
SUMMARIZE (
Data,
Data[Track],
Data[Date],
Data[Time],
"Total_km", DISTINCT ( Data[Kilometers Column] )
),
[Total_km]
)
然后,更改[Revenue / Km]度量:
Revenue/Km = DIVIDE([Revenue], [Total Km])
结果:
该度量可以正确计算小计和总计级别上的km。 工作方式:
首先,我们使用SUMMARIZE将旅行记录分组(其中旅行是轨道,日期和时间的唯一组合)。然后,我们在摘要中添加一列,其中包含每次行程的公里数。最后,我们使用SUMX逐条记录汇总记录,并汇总行程距离。
该解决方案应该有效,尽管我建议您对数据模型设计多加考虑。您需要构建更好的星型架构,否则DAX将继续具有挑战性。例如,我会考虑向每条记录添加类似“旅行ID”的内容-遍历此类ID而不是一直对记录进行分组将更加容易。另外,更具描述性的名称可以帮助使DAX整洁(km [km]之类的名称看起来有些奇怪:)