为什么我的 Google 表格字数统计自定义功能不起作用?
Why doesn't my Google Sheets word count custom function work?
我有以下功能
function wordCount(input) {
const count = {};
input
.forEach(r => {
const words = r.split(" ")
words.forEach(w => {
w = w.replace(/[^a-zöüßä ]/i,"")
w = w[0].toUpperCase() + w.slice(1).toLocaleLowerCase();
count[w] = (count[w] || 0) + 1
})
})
const res = []
for(const [word,frequency] of Object.entries(count)) {
res.push([word,frequency])
}
return res;
}
我想将一列句子传递给函数,它应该 return 一行有两个单元格。
一个有独特的词,下一个有它在句子中的出现频率。
当我使用这个函数时,我发现 r.split
不是一个函数。谁能知道为什么?
如果这是一个 custom function,或者如果您通过读取电子表格范围并应用 .getValues()
获取值,input
将是一个二维数组,即使范围只是单列。
使用此模式:
const words = r.map(sentence => sentence.split(" ")).flat();
要确保自定义函数在仅给定单个值时工作,请使用:
if (!Array.isArray(input)) {
input = [[input]];
}
或者,使用带有 query()
、regexreplace()
和 split()
的普通电子表格公式。您可以按字词分组并按计数聚合。
尝试:
=ARRAYFORMULA(QUERY(FLATTEN(PROPER(IFERROR(SPLIT(REGEXREPLACE(A1:A&"",
"(?i)[^a-z öüßä 0-9]", ), " ")))),
"select Col1,count(Col1)
where Col1 is not null
group by Col1
order by count(Col1) desc
label count(Col1)''"))
我有以下功能
function wordCount(input) {
const count = {};
input
.forEach(r => {
const words = r.split(" ")
words.forEach(w => {
w = w.replace(/[^a-zöüßä ]/i,"")
w = w[0].toUpperCase() + w.slice(1).toLocaleLowerCase();
count[w] = (count[w] || 0) + 1
})
})
const res = []
for(const [word,frequency] of Object.entries(count)) {
res.push([word,frequency])
}
return res;
}
我想将一列句子传递给函数,它应该 return 一行有两个单元格。
一个有独特的词,下一个有它在句子中的出现频率。
当我使用这个函数时,我发现 r.split
不是一个函数。谁能知道为什么?
如果这是一个 custom function,或者如果您通过读取电子表格范围并应用 .getValues()
获取值,input
将是一个二维数组,即使范围只是单列。
使用此模式:
const words = r.map(sentence => sentence.split(" ")).flat();
要确保自定义函数在仅给定单个值时工作,请使用:
if (!Array.isArray(input)) {
input = [[input]];
}
或者,使用带有 query()
、regexreplace()
和 split()
的普通电子表格公式。您可以按字词分组并按计数聚合。
尝试:
=ARRAYFORMULA(QUERY(FLATTEN(PROPER(IFERROR(SPLIT(REGEXREPLACE(A1:A&"",
"(?i)[^a-z öüßä 0-9]", ), " ")))),
"select Col1,count(Col1)
where Col1 is not null
group by Col1
order by count(Col1) desc
label count(Col1)''"))