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

如何基于年份条件动态实现多列销售额求和(无需手动指定年份)

动态多列年度销售额求和方案

Pandas 实现(代码层面)

如果数据存储在Pandas数据框中,可通过动态识别年度列完成求和,无需手动列明年份:

  • 场景1:年度列名为数字格式(如2015、2016)
    筛选所有列名为整数的列,直接求和:

    # 假设数据框变量为df
    # 提取所有年份列
    year_cols = [col for col in df.columns if isinstance(col, int)]
    # 计算各年度的总销售额(每列的总和)
    annual_sales_total = df[year_cols].sum()
    # 若需计算每行的年度合计(如每个产品/区域的年度总销售额)
    df['年度合计'] = df[year_cols].sum(axis=1)
    
  • 场景2:年度列名为带标识的字符串(如"2015年"、"销售额2016")
    通过字符串匹配筛选年份列:

    # 匹配以4位数字开头或包含年份标识的列
    year_cols = [col for col in df.columns if (len(col)>=4 and col[:4].isdigit()) or ('年' in col and col[:4].isdigit())]
    annual_sales_total = df[year_cols].sum()
    

Excel 实现(公式层面)

若用Excel处理,可通过动态公式自动识别年份列求和:

  • Excel 365及以上版本(支持动态数组)
    筛选第一行是数字(年份)的列并求和:

    =SUM(FILTER(B:Z, ISNUMBER(B1:Z1)))
    

    注:B:Z可替换为你数据的列范围,B1:Z1对应表头行。

  • 旧版Excel
    用INDEX+MATCH组合动态定位年份列范围:

    =SUM(INDEX(1:1048576,,MATCH(TRUE,ISNUMBER(1:1),0)):INDEX(1:1048576,,MATCH(TRUE,ISNUMBER(1:1),0)+COUNT(1:1)-1))
    

    注:1:1是表头行,1:1048576是整个数据区域,公式会自动定位第一个年份列到最后一个年份列的范围并求和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:15:35