#google-sheets #row
#google-sheets #строка
Вопрос:
Всем привет, мне нужна помощь, и я не программист. Я пытаюсь добиться того же на листе номер 2.
Мои данные импортируются через «=Submission!$ b2» с листа 1
мне нужна помощь в автоматическом удалении строк, когда определенная ячейка в столбце H не содержит значения «Bekreft», я попробовал оба кода, показанных здесь, но безуспешно.
Это то, что я добавил для скрипта:
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('DATA - Do Not Touch!!!'); // change to your own
var values = s.getDataRange().getValues();
for(var i=values.length;i>0;i-=1){
var lcVal=values[i-1][0].toLowerCase() //Change to all lower case
var index = lcVal.indexOf("vent"); //now you only have to check for contains "vent"
if (lcVal.indexOf("vent") > -1){
s.deleteRow(i)};
}}
Ответ №1:
Поскольку вы заявляете, что вы «не программист», и вставленный вами код не поможет вам, если вы ссылаетесь на данные с другой страницы, я бы предложил использовать функцию фильтрации для достижения вашей цели. Вы бы добавили следующую формулу на свою вторую страницу:
=FILTER(Submission!B:B,ISNUMBER(SEARCH("Bekreft", Submission!H:H)))
Если вы хотите, чтобы скрипт просматривал ваш статический список и удалял значения, которые не содержат «Bekreft», вы можете использовать следующий скрипт.
function onEdit() {
var sheet = SpreadsheetApp.openById("Add Sheet ID").getSheetByName('Sheet1');
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i ) {
var row = values[i];
//row for condition
if (row[7].indexOf("Bekreft")) {
sheet.deleteRow((parseInt(i) 1) - rowsDeleted);
rowsDeleted ;
}
}
};
Комментарии:
1. Спасибо за ваш ответ, опция удаления на самом деле не является хорошим вариантом, поскольку «статус» обновляется, а после обновления строка удаляется и больше не появится…
2. Однако я пытаюсь использовать фильтр, но не уверен, как его использовать, какими должны быть B: B? и H: H? Поскольку я этого не понимаю, я не могу это использовать. Спасибо за помощь и ответ на данный момент.
3. B: B относится ко всему столбцу B. Это приведет к извлечению любого значения в B, где значение в столбце H содержит «Bekreft». Если вы хотите извлечь больше строк на основе критериев в столбце H, вы можете, например, изменить B: B на A:I. Я бы посоветовал вам ознакомиться с функцией фильтра , но я также связал лист с примером.
4. Большое спасибо! Моя головная боль теперь прошла!
5. И последнее: если я хочу создать лист с той же функцией, но с отображением строк, в которых только эта конкретная ячейка пуста, как мне следует поступить?