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

如何计算指标的同比变化?基于销售数据表的实现问询

计算同期销售额差值的实现方法

原始数据

TimeSales
1/1/202030
2/2/202050
1/1/2021100
2/2/2021200

需求

生成如下结果,计算最新年份(2021年)与上一年(2020年)同期的销售额差值,并展示计算过程:

TimeSales Difference
1/1/2021100-30 = 70
2/2/2021200-50 = 150

方法一:Excel操作步骤

  1. 格式化日期列:将Time列设置为日期格式,方便提取同期标识。
  2. 添加辅助列:
    • 插入Month_Day列,用公式=TEXT(A2,"m/d")提取不含年份的日期(如1/1),用于匹配同期数据。
    • 插入Year列,用公式=YEAR(A2)提取对应年份。
  3. 计算差值并展示过程:
    针对2021年的每一行,在目标单元格输入以下公式(以C2单元格为例):
    =B2&"-"&VLOOKUP(TEXT(A2,"m/d"),$A$2:$B$3,2,FALSE)&" = "&(B2-VLOOKUP(TEXT(A2,"m/d"),$A$2:$B$3,2,FALSE))
    
    其中$A$2:$B$3是2020年数据的范围,可根据实际数据调整。

方法二:Python(Pandas)实现

用Pandas可以批量处理这类同期对比计算:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'Time': ['1/1/2020', '2/2/2020', '1/1/2021', '2/2/2021'],
    'Sales': [30, 50, 100, 200]
})

# 转换日期格式,拆分月份日期和年份
df['Time'] = pd.to_datetime(df['Time'])
df['month_day'] = df['Time'].dt.strftime('%m/%d')
df['year'] = df['Time'].dt.year

# 按同期日期透视,计算差值
pivot_df = df.pivot(index='month_day', columns='year', values='Sales')
pivot_df['diff_text'] = pivot_df[2021].astype(str) + "-" + pivot_df[2020].astype(str) + " = " + (pivot_df[2021]-pivot_df[2020]).astype(str)

# 整理成目标格式
result = pivot_df.reset_index()
result['Time'] = pd.to_datetime(result['month_day'] + '/2021')
final_result = result[['Time', 'diff_text']].rename(columns={'diff_text': 'Sales Difference'})

print(final_result)

运行后会输出符合要求的结果表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:43:29