如何在电子表格中复制或连接复杂的字符串
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() 检索具有显示格式的值。如果直接提供范围,日期值将不会保持格式。
参考:
我创建了一个包含多个复杂日期和字符串的电子表格。
当我使用连接时,日期变成数字
=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() 检索具有显示格式的值。如果直接提供范围,日期值将不会保持格式。