为 Google Sheet 中的每 X 个字符拆分字符串
Split string for every X number of characters in a Google Sheet
我想通过每 5 个字符拆分一个字符串来将一个单元格值拆分成多行。
示例: 在下面的示例(屏幕截图)中,我们在 A1
和 B1
中有 ABCDEFGHIJKLMNOPQRSTUVWXYZ
我希望拆分字符串在每第 5 个字母之后。
我该怎么做?
function test() {
let s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let a = s.split("").slice();
let d = 0;
s.split("").forEach((r, i) => {
if (i > 0 && i % 5 == 0) {
a.splice(i + d++, 0, '\n');
}
});
Logger.log(a.filter(e => e).flat().join(""));
}
Execution log
8:20:25 PM Notice Execution started
8:20:24 PM Info ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
Z
8:20:26 PM Notice Execution completed
在您的 google-apps-script
标签中,当使用 Google Apps 脚本时,以下示例脚本如何?
示例脚本:
请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中并保存脚本。并且,请将 =SAMPLE(A1)
的自定义函数放入单元格。这样,结果值被放入单元格。
function SAMPLE(value) {
const v = [...value];
const res = [];
while (v.length > 0) {
res.push(v.splice(0, 5).join(""));
}
return res.join("\n");
}
或者,例如,如果您想将自定义函数用作 =SAMPLE(A1)
和 =SAMPLE(A1:D5)
,下面的示例脚本怎么样?
function output_(value) {
const v = [...value];
const res = [];
while (v.length > 0) {
res.push(v.splice(0, 5).join(""));
}
return res.join("\n");
}
function SAMPLE(values) {
return Array.isArray(values) ? values.map(r => r.map(c => output_(c))) : output_(values);
}
注:
例如,当你使用built-in公式时,下面的公式呢?此公式假设 ABCDEFGHIJKLMNOPQRSTUVWXYZ
的文本到单元格“A1”。请将此公式放入单元格。
=JOIN(CHAR(10),REGEXEXTRACT(A1,REGEXREPLACE(A1,"(.{0,5})","()")))
参考文献:
我想通过每 5 个字符拆分一个字符串来将一个单元格值拆分成多行。
示例: 在下面的示例(屏幕截图)中,我们在 A1
和 B1
中有 ABCDEFGHIJKLMNOPQRSTUVWXYZ
我希望拆分字符串在每第 5 个字母之后。
我该怎么做?
function test() {
let s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let a = s.split("").slice();
let d = 0;
s.split("").forEach((r, i) => {
if (i > 0 && i % 5 == 0) {
a.splice(i + d++, 0, '\n');
}
});
Logger.log(a.filter(e => e).flat().join(""));
}
Execution log
8:20:25 PM Notice Execution started
8:20:24 PM Info ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
Z
8:20:26 PM Notice Execution completed
在您的 google-apps-script
标签中,当使用 Google Apps 脚本时,以下示例脚本如何?
示例脚本:
请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中并保存脚本。并且,请将 =SAMPLE(A1)
的自定义函数放入单元格。这样,结果值被放入单元格。
function SAMPLE(value) {
const v = [...value];
const res = [];
while (v.length > 0) {
res.push(v.splice(0, 5).join(""));
}
return res.join("\n");
}
或者,例如,如果您想将自定义函数用作 =SAMPLE(A1)
和 =SAMPLE(A1:D5)
,下面的示例脚本怎么样?
function output_(value) {
const v = [...value];
const res = [];
while (v.length > 0) {
res.push(v.splice(0, 5).join(""));
}
return res.join("\n");
}
function SAMPLE(values) {
return Array.isArray(values) ? values.map(r => r.map(c => output_(c))) : output_(values);
}
注:
例如,当你使用built-in公式时,下面的公式呢?此公式假设
ABCDEFGHIJKLMNOPQRSTUVWXYZ
的文本到单元格“A1”。请将此公式放入单元格。=JOIN(CHAR(10),REGEXEXTRACT(A1,REGEXREPLACE(A1,"(.{0,5})","()")))