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

如何在电子表格中复制或拼接复杂字符串,解决CONCATENATE拼接日期转数字问题

Excel 中的日期本质是数字序列号,直接参与文本拼接时会调用底层存储的数值,不会继承单元格设置的显示格式,因此会出现44519这类数字;同时你使用的CONCATENATE函数不支持直接传入多单元格区域批量拼接,原有公式写法不符合函数参数要求,也无法实现按行遍历拼接的效果。

解决方案

方案1:Excel 365/2021 及以上版本

该版本支持TEXTJOIN、LAMBDA等动态数组函数,可以一键生成你要的完整格式:

  1. 输入如下公式到目标单元格:
=TEXTJOIN(CHAR(10),TRUE,
  BYROW('2021'!A2:F61,LAMBDA(r,
    LET(
      in_d,INDEX(r,1),
      out_d,INDEX(r,3),
      guest,INDEX(r,5),
      m_head,IF(MONTH(in_d)<>MONTH(OFFSET(in_d,-1,0)),TEXT(in_d,"mmmm yyyy")&CHAR(10),""),
      cont,"in        "&TEXT(in_d,"d/m")&"        out        "&TEXT(out_d,"d/m")&" "&guest,
      m_head&cont
    )
  ))
)
  1. 右键点击目标单元格→「设置单元格格式」→「对齐」→勾选「自动换行」,即可显示你需要的换行排版效果。

公式说明:TEXT函数负责把日期序列号转成你要的显示格式,CHAR(10)是换行符,BYROW会遍历你选中的每一行生成对应记录,TEXTJOIN把所有行的结果合并到同一个单元格。

方案2:低版本 Excel

低版本没有动态数组功能,需要手动转换字段后拼接:

  • 所有日期字段参与拼接前,先用TEXT(日期单元格,"格式码")转换格式,比如要显示6/11格式就用TEXT(A2,"d/m"),要显示November 2021就用TEXT(A2,"mmmm yyyy")
  • 用CHAR(10)插入换行符,拼接后同样需要开启单元格自动换行

单条记录的拼接参考公式:

=TEXT(A2,"mmmm yyyy")&CHAR(10)&"in        "&TEXT(A2,"d/m")&"        out        "&TEXT(C2,"d/m")&" "&E2

如果需要合并多条记录,直接把多条的公式用&连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:24:00