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

如何实现表格自动仅展示当前月及上一月数据无需手动筛选

实现动态展示近两个月数据的方案

通用核心逻辑

  • 从系统获取当前实时日期,提取当前的年份、月份数值
  • 计算上一月的年份、月份:自动处理跨年场景,比如当前为1月时,自动匹配去年12月的数值
  • 用计算得出的两组年月值,和表格的Year、Month列做匹配,过滤出符合条件的行再输入给可视化组件

场景1:Excel / Power BI 实现

  • 第一步:新增辅助列/计算列,输入判断公式
    Power BI DAX 公式示例:是否近两月 = IF( ( [Year] = YEAR(TODAY()) && [Month] = MONTH(TODAY()) ) || ( [Year] = YEAR(EOMONTH(TODAY(),-1)) && [Month] = MONTH(EOMONTH(TODAY(),-1)) ), "是", "否" )
    Excel 公式示例:=IF( OR( AND(YEAR(TODAY())=[@Year], MONTH(TODAY())=[@Month]), AND(YEAR(EDATE(TODAY(),-1))=[@Year], MONTH(EDATE(TODAY(),-1))=[@Month]) ), "是", "否" )
  • 第二步:将可视化组件的筛选器绑定到新增列,仅筛选值为是的行即可,后续打开文件会自动根据当前时间计算,无需手动修改筛选条件

场景2:SQL 数据预处理实现

如果数据从数据库查询获取,可直接在查询语句中加过滤条件,MySQL示例如下:

SELECT * FROM 你的表名
WHERE 
  -- 匹配当前月
  (Year = YEAR(CURDATE()) AND Month = MONTH(CURDATE()))
  OR
  -- 匹配上一月
  (Year = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AND Month = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)))

查询结果直接为近两个月的数据,传给可视化组件即可,不需要额外加筛选。

场景3:Python Pandas 可视化实现

用Python处理数据再做可视化的场景,直接在DataFrame中做过滤即可:

import pandas as pd
from datetime import datetime

# 假设df为你的原始数据DataFrame
current_date = datetime.now()
current_y, current_m = current_date.year, current_date.month
last_month_date = current_date - pd.DateOffset(months=1)
last_y, last_m = last_month_date.year, last_month_date.month

# 过滤数据
filtered_df = df[
    ((df['Year'] == current_y) & (df['Month'] == current_m)) |
    ((df['Year'] == last_y) & (df['Month'] == last_m))
]

# 把filtered_df传给matplotlib/plotly/streamlit等可视化组件即可

注意如果你的Month列是文本格式(比如"1月"、"January"),需要先转换为数值格式再做判断,避免匹配出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:39:03