• Как через запрос query в консолидированной таблице google sheets добавить столбец с названием листа?

    Geleoss
    @Geleoss
    Любитель таблиц
    1. Делаете служебный лист c названиями всех имеющихся листов (городов) в Вашей таблице.
    Можете сделать это вручную, можете скриптом, он достаточно простой.
    Можно даже запускать такой скрипт при открытии таблицы автоматически, если предполагается изменение количества страниц.

    2. Собираете данные со всех листов, но в первую колонку вставляете название листа.
    Делаетеся это такой формулой:
    =REDUCE({"Город"\"Продукт"\"Дата"\"Сумма"\"Менеджер"};
      tocol('Города'!A2:A;1);
      LAMBDA(acc;city;
        VSTACK(acc;
          BYROW(INDIRECT(city&"!A2:D");LAMBDA(_row;{city\_row})))
      )
    )


    Reduce - сводит воедино данные по страницам (городам в Вашем случае). lambda - составная часть этой функции.

    TOCOL cо вторым параметром 1 используется в данном случае чтоб убрать пустые строки, так как количество городов неизвестно и мы используем открытый диапазон A2:A.

    VSTACK - объединяет массивы. В данном случае - массив acc, результат предыдущих итераций reduce, с текущим.

    BYROW - используется для построчной обработки данных. В данном случае - для формирования строки из названия текущего города (city из текущей итерации reduce) и каждой строки со страницы текущего города.

    3. Эту формулу оборачиваете в нужный вам QUERY, где в том числе фильтруете пустые строки.

    Вот ваш QUERY:
    664066ab55d26686658205.png

    А вот так он будет выглядеть, когда в качестве "входящего" диапазона используется формула из п2.
    6640679b896d2483327392.png

    =QUERY(
      REDUCE(...
      );
      "SELECT ..")
    Ответ написан
    2 комментария
  • Почему не появляется QR-код при введении формулы?

    Geleoss
    @Geleoss
    Любитель таблиц
    QR-cервис гугла отключен.

    Используйте любой сторонний сервис. Например, quickchart.io.
    Документация по формированию запроса.

    =IMAGE("https://quickchart.io/qr?text="&A1&"&size=500x500")
    Ответ написан
    Комментировать
  • Как отсортировать столбец, но не всего значения ячейки, а его части?

    Geleoss
    @Geleoss
    Любитель таблиц
    =SORT(TOCOL(A2:A;1);MOD(TOCOL(A2:A;1);1000);1)

    1. Для нашей локали нужно использовать ; вместо , в формулах.
    2. Вариант с Mid/Right - очень неудачный, так как, во-первых, в результате его получим текст, который потом нужно будет ещё обратно превратить в число для сортировки, а во-вторых, если в начальном числе будет не 5 цифр, а 4 или 6, результат будет неверным. Поэтому как и посоветовали выше используйте деление на 1000.
    3. В своей формуле я использовал открытый диапазон A2:A, поэтому чтоб исключить пустые значения нужно TOCOL(A2:A;1).
    Ответ написан
    1 комментарий
  • Как получить имя таблицы Google Sheets по по ссылке?

    Geleoss
    @Geleoss
    Любитель таблиц
    Имена файлов формулами получить нельзя, но можно с помощью Google App Script.
    Ответ написан
    Комментировать
  • Как настроить проверку данных в Google Sheets?

    Geleoss
    @Geleoss
    Любитель таблиц
    =ArrayFormula(OR($C1=$A:$A))
    Правило проверки полного совпадения текста, введенного в ячейке столбца С, с текстом ячейки столбца А будет выклядеть вот так: 662e10ba9fec5953471052.png

    =ArrayFormula(OR($D1=$A:$A))
    =ArrayFormula(OR($D1=$B:$B))

    Аналогичные правила условного форматирования для выделения цветом полного совпадения текста из ячейки столбца D c одним из текстом ячейки в столбцах A и B соответственно будут выглядеть так:
    662e129cbcd5c686996818.png
    Ответ написан
    Комментировать
  • Как автоматически менять название листа в ссылке?

    Geleoss
    @Geleoss
    Любитель таблиц
    Для формирования ссылки на ячейку используйте INDIRECT. А для формирования текста ссылки из даты - TEXT
    Ответ написан
    Комментировать
  • Как в ячейку C3 вставить последние значение столбца E?

    Geleoss
    @Geleoss
    Любитель таблиц
    =CHOOSEROWS(TOCOL(A:A;1);-1)
    Ответ написан
    Комментировать
  • Какая формула нужна для поиска номера последней строки с определенным значением?

    Geleoss
    @Geleoss
    Любитель таблиц
    Для нахождения номера строки воспользуйтесь XMATCH
    =XMATCH(2;A1:A;;-1)
    где 2 - значение, которое ищём; A1:A - диапазон поиска; -1 - направление поиска
    Ответ написан
    1 комментарий
  • Зафиксировать дату с использованием функции TODAY()?

    Geleoss
    @Geleoss
    Любитель таблиц
    Попробуйте вот такой хак:
    =LAMBDA(tmp;IF(A123;tmp;))(NOW())
    , где A123 - ячейка с вашим флажком
    Ответ написан
    4 комментария
  • Почему MATCH может выдавать неверный результат?

    Geleoss
    @Geleoss
    Любитель таблиц
    ПОИСКПОЗ(запрос; диапазон; метод_поиска)
    1 (значение по умолчанию) указывает функции ПОИСКПОЗ, что диапазон отсортирован в порядке возрастания. Функция возвращает наибольшее значение среди всех значений, которые меньше или равны запросу.
    0 указывает функции, что требуется вернуть точное совпадение. Применяется в случаях, когда диапазон не отсортирован.


    Вам же нужно в своей функции указать 0, =MATCH(B2;B:B;0).
    Ещё лучше, не "растягивать" формулу по ячейкам, а воспользоваться формулой массива:
    =ArrayFormula(IFNA(MATCH(B2:B;B:B;0)))
    Ответ написан
    2 комментария