DAX度量值问题:基于汇总表变量找出日均销量最高Price Bin
解决DAX中获取日均销量最高Price Bin的问题
针对你的需求——从独立的Price Bin表中找出日均销量最高的价格区间,以下是可行的DAX度量值方案,解决你在变量汇总时遇到的问题:
核心思路
先为每个Price Bin计算对应的日均销量,再从这些结果中筛选出销量最高的Bin,同时处理多个Bin销量相同的情况。
度量值实现
假设你已有的qty_sold_per_day_per_price_bin能正确计算单个Price Bin的日均销量,那么best_price_bin可以这样写:
best_price_bin = VAR PriceBinWithSales = // 为每个Price Bin添加日均销量列 ADDCOLUMNS( 'Price Bin', "@DailySalesQty", [qty_sold_per_day_per_price_bin] ) VAR MaxDailySales = MAXX(PriceBinWithSales, [@DailySalesQty]) VAR TopPriceBins = // 筛选出所有达到最高日均销量的Price Bin FILTER(PriceBinWithSales, [@DailySalesQty] = MaxDailySales) RETURN // 若多个Bin销量相同,用逗号分隔输出;仅需单个结果可改用SELECTEDVALUE CONCATENATEX(TopPriceBins, 'Price Bin'[Value], ", ")
补充说明
Price Bin分组逻辑校验
如果你的qty_sold_per_day_per_price_bin还未正确关联Price Bin的价格区间,需要补充价格范围筛选,示例如下:qty_sold_per_day_per_price_bin = VAR CurrentBin = SELECTEDVALUE('Price Bin'[Value]) VAR PriceLowerBound = CurrentBin - 2.5/2 VAR PriceUpperBound = CurrentBin + 2.5/2 VAR TotalSalesDays = DISTINCTCOUNT(sales[Date]) VAR TotalQtySold = CALCULATE( SUM(sales[Qty_Sold]), sku_pricing[List_Price] >= PriceLowerBound && sku_pricing[List_Price] < PriceUpperBound ) RETURN DIVIDE(TotalQtySold, TotalSalesDays, 0)这里按
Bin值±1.25划分价格区间,确保每个价格都能对应到正确的Bin。特殊情况处理
- 若所有Bin日均销量为0,返回值会是空或0,可在RETURN前添加判断调整。
- 若仅需返回第一个最优Bin,可将RETURN部分改为:
SELECTEDVALUE(TOPN(1, TopPriceBins, [@DailySalesQty], DESC), 'Price Bin'[Value])
内容的提问来源于stack exchange,提问作者A Pick
相关产品推荐
相关产品推荐

