Google 表格通过根据匹配值附加列来添加注释
Google Sheets add a note by appending column based on matching value
目标是随着时间的推移,根据所选值向 google sheet 添加一个或多个音符。
脚本将允许在 sheet 和 运行 脚本函数中添加按钮以附加到下一个可用列。
例如,选择了蒂姆这个名字。写了一条注释,按下按钮 运行 函数,它将把它添加到 D 列(因为它是 Tim 的下一个可用列)。
再举一个例子,Jeff这个名字被选中了。写了一张便条。由于没有更多的列,附加列应该自动创建一个新列并允许在“Jeff”的行中写入注释,这将是列 G
不确定这是否完全可行,但希望得到一些建议或想法。
A
B
C
D
E
F
Mark
B+
completed assignment partly but needed extra time since..
89433
other
Tim
A
checked
Jeff
C
n/a
assignment # 4
done
other
Steve
A
completed
get file
received
Elon
B-
three out of four
check email
这就是我认为您要实现的目标 -
而且,这段代码应该可以帮助您入门 -
function main() {
const name = "Steve";
const note = "HELLO"
addNote(name, note);
}
function addNote(name, note) {
const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const values = ss.getDataRange().getValues();
for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
let row = values[rowIndex];
let nameColumn = row[0];
if (nameColumn == name) {
let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
.filter(value => value !== "")
let newColIndex = rowValues.length;
ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
}
}
}
不过,我强烈建议选择其他东西作为唯一标识符而不是名称,因为如果有 2 行具有相同的名称,那么代码实际上会针对这两行添加注释(错误地)。
目标是随着时间的推移,根据所选值向 google sheet 添加一个或多个音符。
脚本将允许在 sheet 和 运行 脚本函数中添加按钮以附加到下一个可用列。
例如,选择了蒂姆这个名字。写了一条注释,按下按钮 运行 函数,它将把它添加到 D 列(因为它是 Tim 的下一个可用列)。
再举一个例子,Jeff这个名字被选中了。写了一张便条。由于没有更多的列,附加列应该自动创建一个新列并允许在“Jeff”的行中写入注释,这将是列 G
不确定这是否完全可行,但希望得到一些建议或想法。
A | B | C | D | E | F |
---|---|---|---|---|---|
Mark | B+ | completed assignment partly but needed extra time since.. | 89433 | other | |
Tim | A | checked | |||
Jeff | C | n/a | assignment # 4 | done | other |
Steve | A | completed | get file | received | |
Elon | B- | three out of four | check email |
这就是我认为您要实现的目标 -
而且,这段代码应该可以帮助您入门 -
function main() {
const name = "Steve";
const note = "HELLO"
addNote(name, note);
}
function addNote(name, note) {
const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const values = ss.getDataRange().getValues();
for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
let row = values[rowIndex];
let nameColumn = row[0];
if (nameColumn == name) {
let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
.filter(value => value !== "")
let newColIndex = rowValues.length;
ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
}
}
}
不过,我强烈建议选择其他东西作为唯一标识符而不是名称,因为如果有 2 行具有相同的名称,那么代码实际上会针对这两行添加注释(错误地)。