You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI获取各门店最新可用评估数据的筛选问题咨询

嘿,这个需求在门店数据分析里挺常见的,我给你整理了几个不同工具下的解决方案,你可以根据自己日常用的工具来选:

用 Excel 解决的方法

如果你用 Excel 处理数据,可以结合 MAXIFS 和 XLOOKUP 函数来实现:
假设你的数据在 A-C 列,筛选目标是2018年3月及之前的最新数据,门店名称放在 E2 单元格,那么公式可以写成:

=XLOOKUP(MAXIFS(B:B,A:A,E2,B:B,"<=15/03/18"),B:B,C:C,"无数据",0,1)
  • 逻辑说明:先用MAXIFS找到该门店在筛选日期前的最新评估日期,再用XLOOKUP匹配对应的总分;如果门店没有任何历史数据,会返回"无数据"。
  • 小提示:你可以把筛选日期改成单元格引用(比如放在F1),这样就能动态调整筛选月份了。
用 SQL 解决的方法

如果数据存在数据库里,用窗口函数是最简洁的方式:

WITH ranked_store_data AS (
    SELECT 
        门店, 
        日期, 
        总分,
        -- 按门店分组,日期倒序排名,最新数据排第1
        ROW_NUMBER() OVER (PARTITION BY 门店 ORDER BY 日期 DESC) AS rank_num
    FROM 
        门店评估表
    WHERE 
        日期 <= '2018-03-15' -- 替换为你要筛选的月份最后一天
)
SELECT 门店, 日期, 总分
FROM ranked_store_data
WHERE rank_num = 1;

执行后,每个门店都会返回筛选日期范围内的最新评估数据,不管有没有当月的记录。

用 Python Pandas 解决的方法

如果用 Python 做数据分析,Pandas 可以快速实现需求:

import pandas as pd

# 模拟你的数据
df = pd.DataFrame({
    '门店': ['A', 'A', 'B', 'B', 'C'],
    '日期': ['15/01/18', '15/03/18', '15/01/18', '15/02/18', '15/03/18'],
    '总分': [85, 78, 73, 69, 92]
})

# 转换日期格式为可识别的datetime类型
df['日期'] = pd.to_datetime(df['日期'], format='%d/%m/%y')

# 设置筛选的目标月份(比如2018年3月)
target_month_end = pd.to_datetime('2018-03-31')

# 筛选数据并取每个门店的最新记录
result = df[df['日期'] <= target_month_end].sort_values('日期').groupby('门店').last().reset_index()

print(result)

运行后输出的结果会自动保留每个门店在3月及之前的最新评估数据,其中门店B会显示2月的69分。

内容的提问来源于stack exchange,提问作者JuaBar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:28:36