我在 PowerBI 中有一个表,其中有不同产品和不同月份多家商店的库存数量。我还有一个日历表和一个商店映射表。在一张纸中,我插入了两个切片器,一个用于日期,一个用于商店。日期来自日历表,商店名称来自商店映射表。两者均启用单一选择(只能选择一家商店和一个日期)。在表格视觉中,我想显示商店在给定月份有库存的每个产品 ID。我创建了一个度量来显示某个产品 ID 出现在多少个其他商店中并且库存大于 0。该度量适用于较小的数据库:
Total Stores per product =
VAR YEAR = SELECTEDVALUE('Calendar'[YEAR])
VAR MONTH = SELECTEDVALUE('Calendar'[Month])
VAR MONTH_no = MONTH(DATEVALUE(MONTH & " 1, " & AN))
VAR date = EOMONTH(DATE(YEAR, MONTH_no, 1), 0)
VAR product_id = SELECTEDVALUE('PRODUCTS'[NUM_ART])
RETURN
CALCULATE
(
COUNTROWS('PRODUCTS'),
FILTER(
ALL('PRODUCTS'),
'PRODUCTS'[stock_quantity] > 0 && 'PRODUCTS'[data_stock] = date && 'PRODUCTS'[NUM_ART] = product_id
)
)
我面临的问题是我有一个很大的数据集,当尝试在表格视觉中插入此度量时,它会崩溃,这意味着它超出了可用资源。
我请求您帮助以某种方式重写该度量,以减少计算资源。我知道 COUNTROWS 和 FILTER 函数占用大量内存,但我不确定应该如何修改度量以使最终结果相同。
您是否更喜欢查看显示特定日期和商店的可用库存的唯一产品 ID 列表的表格,还是只需要相同参数的这些唯一产品 ID 的总数?
如果首先,您可以将 ProductId(从事实表或产品暗淡表)拖到表视觉对象中,然后在该表上放置一个过滤器以删除所有没有库存数量的产品(按列或按度量) 。因为您已经使用日期和存储切片器操作过滤器上下文,所以不需要将这些值存储在其他地方。
滤镜前:图像
滤镜后:图像
如果是第二种,你可以创建一个像这样的措施:
CurrentStockQuantity = MAX(stock_quantities[StockQuantity])
TotalProductsInStock =
CALCULATE(
DISTINCTCOUNT(stock_quantities[ProductId]),
FILTER(
stock_quantities,
[CurrentStockQuantity] > 0
)
)