如何在电子表格中复制或连接复杂的字符串

How to copy or CONCATENATE complex string within Spreadsheet

我创建了一个包含多个复杂日期和字符串的电子表格。

当我使用连接时,日期变成数字

=CONCATENATE('2021'!A2:'2021'!F61)

结果就像

44519in44471out44472Guest1in44475out44476SGuest2

如何在一个单元格中产生这样的结果

November 2021                                        
in        6/11        out        10/11 Guest 1
in        26/11        out        28/11 Guest 2        
December 2021                                        
in        29/12        out        31/12 Guest 3

我只需要复制和粘贴单元格功能,但找不到。

请注意,为了标识换行符,选择了一个额外的列 F,该列应为空白

=REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(TEXTJOIN("♦",FALSE,'2021'!A1:F5),"♦{2,}",CHAR(10)),"♦$",),"♦",CHAR(9))

一种选择是使用 Apps 脚本 Custom Function

首先,通过选择Tools > Script editor打开一个绑定脚本,并将以下函数复制到脚本中:

function CONCAT_WITH_DATES(rangeNotation) {
  const values = SpreadsheetApp.getActiveSheet()
                               .getRange(rangeNotation)
                               .getDisplayValues()
                               .map(row => row.filter(cell => String(cell)))
                               .map(row => row.join("     "))
                               .join("\n");
  return values;
}

保存脚本后,您可以像使用任何工作表内置函数一样使用此函数:

注:

必须在引号中提供输入范围,以便通过 Range.getDisplayValues() 检索具有显示格式的值。如果直接提供范围,日期值将不会保持格式。

参考: