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

Google Sheets自定义函数ConcatIfDates日期拼接异常求助

修正Google Sheets自定义函数ConcatIfDates()实现日期拼接

你的问题出在代码里每次都新建了当前日期,完全没用到GetColoredValue()传进来的实际日期数据,所以才会返回一堆重复的当前日期。下面是修正后的代码,同时解决冗长日期格式的问题:

function ConcatIfDates(input) {
  // 把传入的二维数组扁平化,只保留有效的日期对象
  const validDates = input.flat().filter(item => item instanceof Date);
  
  // 按指定格式格式化每个日期,时区请根据你的实际需求调整
  const formattedDates = validDates.map(date => {
    // 示例用你提到的GMT+06:30,可自行修改
    return Utilities.formatDate(date, "GMT+06:30", "dd-MMM-yy");
  });
  
  // 用逗号加空格拼接成目标格式
  return formattedDates.join(", ");
}

关键改动说明:

  • 删掉了错误的var date = new Date();,直接使用传入的日期数据
  • 用flat()处理Google Sheets传入的二维数组(单元格范围数据默认是二维结构)
  • 增加过滤逻辑filter(item => item instanceof Date),避免处理空值或非日期内容
  • 时区参数调整为你实际需要的时区(比如你示例里的GMT+06:30),防止日期显示偏移
  • 用, 作为分隔符拼接,完全匹配你期望的输出格式

使用方式不变,依然用=ConcatIfDates(GetColoredValue(COLUMN(A2),ROW(A2),COLUMN(F2))),就能得到27-Jun-22, 13-Oct-22, 27-Jun-22这样的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:08:26