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

如何用公式将横向数据按日期匹配转成纵向格式(Excel 2019)

Excel 2019实现横向数据按日期+登记号匹配转纵向并自动关联登记号

方法一:函数组合(实时自动更新)

假设你的Table A结构如下:

  • A列:登记号(enroll)
  • B1:Z1:日期表头(如2024/01/01、2024/01/02)
  • B2:Z100:对应登记号+日期的班次数据

Table B需要生成日期、登记号、班次的纵向结构,且K2输入登记号后N列自动返回对应班次,操作步骤:

  1. 生成日期序列:在L2输入公式,下拉至出现#REF!为止:
    =INDEX($B$1:$Z$1,ROW(A1))
    
  2. 绑定登记号:M2输入公式并下拉,自动关联K2的登记号:
    =$K$2
    
  3. 提取对应班次:N2输入公式下拉,匹配日期和登记号提取数据,空班次自动显示“无班次”:
    =IFERROR(INDEX($B$2:$Z$100,MATCH($K$2,$A$2:$A$100,0),MATCH(L2,$B$1:$Z$1,0)),"无班次")
    

方法二:Power Query批量转换(适合大数据量)

如果数据量较大,用Power Query批量转置更高效:

  1. 选中Table A全部数据,点击数据→从表格/区域,加载到Power Query编辑器(确保数据有表头)。
  2. 选中登记号列,点击转换→逆透视列→逆透视其他列,数据自动转为纵向结构:登记号、属性(日期)、值(班次)。
  3. 重命名列:将“属性”改为“日期”,“值”改为“班次”。
  4. 点击关闭并上载,将转换后的表加载到新工作表(命名为Table B)。
  5. 回到原工作表,N2输入数组公式(按Ctrl+Shift+Enter确认)并下拉:
    =INDEX(Table_B[班次],MATCH(L2&$K$2,Table_B[日期]&Table_B[登记号],0))
    
  6. 当Table A数据更新时,右键Table B→刷新即可同步数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:47:06