Как при отборе формулой QUERY с лимитом 2 повторить данные с предыдущей строки, если вторая будет пустой?
Добрый день)
Имеется формула QUERY для выборки определенных строк
=QUERY('Лист 1'!A:AK;"SELECT * WHERE (I contains 'Данные 1' AND AB = 'Моно' AND D > '199') ORDER BY C ASC, D DESC LIMIT 2";0)
Т.е. по заданным параметрам выбираются две строки
Есть две проблемы важная и не очень:
1 важная: как сделать так, что если нужных данных меньше, т.е. выводится только одна строка- то вторая бы не оставалась бы пустой, а копировала бы предыдущую строку?
2 не такая важная: если данные в столбцах A,C, D при выводе строк будут одинаковые- то дубль бы не выводился, а продолжал поиск следующего подходящего по параметру?
Спасибо огромное, как всегда сработало!
А можно ли что-то подобное
=LAMBDA(data;if(ROWS(data)<2;{data;data};data)) (ваша_формула)
написать более точечно.
Т.е. если я query поставлю лимит не 2 строки, а 10 (или любое другое число)- то если она выведет меньше строк, 7 например, то остальные три строки будут заполнены копией седьмой строки?
Написано
Григорий Боев
@ProgrammerForever Куратор тега Google Sheets
{data;data} = повтор 2 раза
Можно, теоретически, повторить нужную строку несколько раз, но я бы просто сделал функцию на GAS, если бы стояла именно такая задача, и никак иначе
Григорий Боев,
да, были попытки сделать повтор два раза последней строки, но слабо знаю синтаксис, поэтому никак не срабатывает. Видимо не правильно пишу вместо этого массива {data;data} - массив типа {последняя строка(data);последняя строка(data)}