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

如何按year、week条件匹配行并将非空结果汇总输出为单列

数据集示例

方案1:Excel/WPS 公式实现(适合小数据量快速处理)

如果你用的是Excel 365/2021、WPS 2022及以上版本,直接用如下公式即可:

=TOCOL(FILTER(C:Z,(A:A=目标年份)*(B:B=目标周数)),1)

参数说明:

  • 把C:Z替换为你表中除了year、week列之外的所有数据列范围
  • 把目标年份、目标周数替换为你要匹配的具体值,也可以引用单元格值
  • TOCOL第二个参数填1,表示自动忽略转换过程中的空值

如果是低版本Excel,使用如下数组公式(输入后按Ctrl+Shift+Enter生效):

=INDEX($C:$Z,SMALL(IF(($A:$A=目标年份)*($B:$B=目标周数)*($C:$Z<>""),ROW($C:$Z),99999),ROW(A1)),MOD(SMALL(IF(($A:$A=目标年份)*($B:$B=目标周数)*($C:$Z<>""),ROW($C:$Z)*1000+COLUMN($C:$Z),99999999),ROW(A1)),1000)-COLUMN($C:$C)+1)

公式下拉到出现#REF!错误为止,就是所有匹配的非空结果。

方案2:Power Query 实现(适合批量重复处理)

如果需要经常更新数据做相同转换,用Power Query更高效:

  • 选中数据表,点击「数据」选项卡-「从表格/区域」加载到Power Query编辑器
  • 选中year和week列,筛选出你需要匹配的年份和周数
  • 按住Ctrl选中year、week两列,右键点击「逆透视其他列」
  • 选中新生成的「值」列,筛选掉空值
  • 删除不需要的「属性」列,最后点击「关闭并上载」即可得到单列结果

方案3:Python Pandas 实现(适合大数据量处理)

如果数据量较大,用pandas可以快速完成转换,示例代码如下:

import pandas as pd

# 读取源数据,支持Excel、csv等格式
df = pd.read_excel("你的数据表路径.xlsx")

# 按目标年周筛选数据,示例为筛选2024年第12周
target_df = df[(df["year"] == 2024) & (df["week"] == 12)]

# 提取所有非空值转单列
result = target_df.drop(columns=["year", "week"]).stack().reset_index(drop=True).to_frame("匹配结果")

# 导出结果到文件
result.to_excel("输出结果.xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:42:01