我与Surveymonkey一起工作,当有人不回答我的问题时,我的单元格充满了“ 未回答”。 目标是将多行合并为一。 可能的解决方案是:
我需要一个脚本来自动查找并替换。这将替换(更准确地说是删除“ 未回答”),并用一个空白单元格。因此,我的TEXTJOIN将起作用。我已经尝试了一些代码,但不适用于整个工作表。 TEXTJOIN函数(定界符,ignore_empty,text1,[text2,...])的问题在于,第二个参数igrone_empty为布尔值,仅适用于TRUE或FALSE,并且无法编写“ 未回答”那里。因此,我必须找到另一种解决方案来忽略或删除单词“ 未回答”。
替代TEXTJOIN的单词,其中“未回答”被忽略。
或者是否有可能在SurveyMonkey中删除此选项?
我已经尝试过此解决方案,但不适用于整个工作表/表格。
var result = ui.alert(
"Will update " + to_replace + " to " + replace_with + " ",
'Are you sure you want to continue?',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (result == ui.Button.YES) {
// User clicked "Yes".
spread.toast("Will update " + to_replace + " to " + replace_with + " ", "ALERT");
var data = range.getValues();
var oldValue="";
var newValue="";
var cellsChanged = 0;
for (var row=0; row<data.length; row++) {
for (var item=0; item<data[row].length; item++) {
oldValue = data[row][item];
newValue = data[row][item].replace(to_replace, replace_with);
if (oldValue!=newValue)
{
cellsChanged++;
data[row][item] = newValue;
}
}
}
range.setValues(data);
spread.toast(cellsChanged + " cells changed", "STATUS");
}
else {
// User clicked "No" or X in the title bar.
spread.toast("No action taken", "ABANDONED");
}
}
答案 0 :(得分:1)
尝试一下:
function replaceNotAnswerWithBlank(e) {
var ss=e.source;
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var tf=sh.createTextFinder('Not Answered').findAll();
for(var i=0;i<tf.length;i++) {
sh.getRange(tf[i].getRow(),tf[i].getColumn()).setValue('');
}
}
如何?
function onOpen(e) {
replaceNotAnswerWithBlank(e);
}
答案 1 :(得分:0)
我需要一个触发器,所以这就是我解决问题的方式。如果有更简单的功能解决方案,请写下来。谢谢库珀。
function onOpen() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var tf=sh.createTextFinder('Not Answered').findAll();
replaceNotAnswerWithBlank(ss, sh, rg, tf);
}
function replaceNotAnswerWithBlank(ss, sh, rg, tf) {
for(var i=0;i<tf.length;i++) {
sh.getRange(tf[i].getRow(),tf[i].getColumn()).setValue('');
}
}