Size: a a a

Чат | Google Таблицы и скрипты

2020 November 23

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Е
Это с гугловского хелпа информация?
И по поводу filter - я так понимаю при обновлении через importfeed информация на лист с filter будет автоматически подтягиваться?
источник

NK

ID:0 in Чат | Google Таблицы и скрипты
источник

Е

Е in Чат | Google Таблицы и скрипты
Eugeny Namokonov
А причем тут filter?
Я сначала собираю по разным листам информацию а потом переношу на один общий
Наверняка можно написать сложную формулу чтобы сразу собирать на одном листе, но тогда сложно будет добавлять/удалять страницы с которых собираю информацию. Это конечно редко происходит, но тем не менее
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Filter обновляется почаще, при каждом изменении в Таблице, как собственно любая формула, которая никуда не ходит, а работает только с данными.
источник

Е

Е in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Filter обновляется почаще, при каждом изменении в Таблице, как собственно любая формула, которая никуда не ходит, а работает только с данными.
Отлично!
Спасибо!
источник

NK

ID:0 in Чат | Google Таблицы и скрипты
Спарклайн с расчетом данных прямо в формуле

Дано: данные по продажам товарных позиций по месяцам. Много строк с товарами и столбцы-месяцы. Итоговых сумм у нас нет. Но при этом мы хотим посмотреть динамику визуально - по всем товарам по месяцам.

Выход - рассчитать суммы прямо в массиве, который будет аргументом функции SPARKLINE. Тогда никаких дополнительных ячеек использоваться не будет.

Сумма по каждому столбцу (месяцу) - СУММ(B2:B), СУММ(C2:C) и так далее.
После объединяем их в один массив:
{СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)}

И остается этот виртуальный диапазон данных (массив) использовать как аргумент в функции, формирующей спарклайн. Вторым аргументом будет тип спарклайна (charttype) - столбчатый (column). Тип спарклайна тоже задаем в массиве, экономим место на рабочем листе 😉

=SPARKLINE({СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)} ; {"charttype" \ "column"})

***
Более сложный и универсальный вариант: когда вам не хочется перечислять много функций, а также менять этот набор при добавлении новых столбцов, можно создать универсальную формулу, которая будет возвращать сумму по всем имеющимся на листе столбцам (и менять возвращаемый массив, когда новые месяцы будут добавляться к данным).

Решить задачу можно разными способами, например, так:
- с помощью СЧЁТЗ определить, сколько у нас заполнено столбцов
- с помощью SEQUENCE затем сформировать номера этих столбцов, от первого столбца с данными (в примере это второй столбец на листе)
- подставить это все в АДРЕС, чтобы получить адреса ячеек вида B1, C1 и т.д.
- из АДРЕСа достать номера заголовков с помощью регулярного выражения (достаем только латинские прописные буквы).
- все это собрать в запрос для функции QUERY вида sum(B), sum(C), sum(D) и т.д.
- с помощью ИНДЕКСа взять только вторую строку из выдачи QUERY (так как спарклайн умеет отображать только числа, то заголовки из выдачи QUERY будут ему мешать).
- все это засунуть в функцию SPARKLINE.

Ух! Если у вас будут идеи альтернативных решений этой задачки - пишите, мы с радостью ими поделимся 😉  В файле с примером есть пошаговый разбор.

===

📕 НАШ КУРС НА SKILLBOX (Таблицы и скрипты)
📘 КАНАЛ: @google_sheets  /  оглавление
📗 ЧАТ: @google_spreadsheets_chat
источник

MS

Michael Smirnov in Чат | Google Таблицы и скрипты
ID:0
Спарклайн с расчетом данных прямо в формуле

Дано: данные по продажам товарных позиций по месяцам. Много строк с товарами и столбцы-месяцы. Итоговых сумм у нас нет. Но при этом мы хотим посмотреть динамику визуально - по всем товарам по месяцам.

Выход - рассчитать суммы прямо в массиве, который будет аргументом функции SPARKLINE. Тогда никаких дополнительных ячеек использоваться не будет.

Сумма по каждому столбцу (месяцу) - СУММ(B2:B), СУММ(C2:C) и так далее.
После объединяем их в один массив:
{СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)}

И остается этот виртуальный диапазон данных (массив) использовать как аргумент в функции, формирующей спарклайн. Вторым аргументом будет тип спарклайна (charttype) - столбчатый (column). Тип спарклайна тоже задаем в массиве, экономим место на рабочем листе 😉

=SPARKLINE({СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)} ; {"charttype" \ "column"})

***
Более сложный и универсальный вариант: когда вам не хочется перечислять много функций, а также менять этот набор при добавлении новых столбцов, можно создать универсальную формулу, которая будет возвращать сумму по всем имеющимся на листе столбцам (и менять возвращаемый массив, когда новые месяцы будут добавляться к данным).

Решить задачу можно разными способами, например, так:
- с помощью СЧЁТЗ определить, сколько у нас заполнено столбцов
- с помощью SEQUENCE затем сформировать номера этих столбцов, от первого столбца с данными (в примере это второй столбец на листе)
- подставить это все в АДРЕС, чтобы получить адреса ячеек вида B1, C1 и т.д.
- из АДРЕСа достать номера заголовков с помощью регулярного выражения (достаем только латинские прописные буквы).
- все это собрать в запрос для функции QUERY вида sum(B), sum(C), sum(D) и т.д.
- с помощью ИНДЕКСа взять только вторую строку из выдачи QUERY (так как спарклайн умеет отображать только числа, то заголовки из выдачи QUERY будут ему мешать).
- все это засунуть в функцию SPARKLINE.

Ух! Если у вас будут идеи альтернативных решений этой задачки - пишите, мы с радостью ими поделимся 😉  В файле с примером есть пошаговый разбор.

===

📕 НАШ КУРС НА SKILLBOX (Таблицы и скрипты)
📘 КАНАЛ: @google_sheets  /  оглавление
📗 ЧАТ: @google_spreadsheets_chat
=SPARKLINE(MMULT(SEQUENCE(1; ROWS(B2:G); 1; 0); ARRAYFORMULA(--B2:G)) ; {"charttype" \ "column"})
источник

MS

Michael Smirnov in Чат | Google Таблицы и скрипты
Michael Smirnov
=SPARKLINE(MMULT(SEQUENCE(1; ROWS(B2:G); 1; 0); ARRAYFORMULA(--B2:G)) ; {"charttype" \ "column"})
Для динамического количества заполненных столбцов: =SPARKLINE(MMULT(SEQUENCE(1; ROWS(B2:B); 1; 0); ARRAYFORMULA(--OFFSET(B2:B; 0; 0; ROWS(B2:B); COUNTA(B1:1)))); {"charttype" \ "column"})
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Michael Smirnov
Для динамического количества заполненных столбцов: =SPARKLINE(MMULT(SEQUENCE(1; ROWS(B2:B); 1; 0); ARRAYFORMULA(--OFFSET(B2:B; 0; 0; ROWS(B2:B); COUNTA(B1:1)))); {"charttype" \ "column"})
👍
источник

MM

Mykola Melnyk in Чат | Google Таблицы и скрипты
Привет, подскажите пожалуйста, как можно быстро исправить дату формата 2, на 1?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Mykola Melnyk
Привет, подскажите пожалуйста, как можно быстро исправить дату формата 2, на 1?
пример
источник

C

Combot in Чат | Google Таблицы и скрипты
📌❗️Mykola Melnyk, в чате только одно правило: к каждому вопросу прикладывать ссылку на Таблицу с примером.

Как нужно:
Друзья, привет! Как бы мне из левой таблицы сделать правую? Сроки горят, гречки нет, выручайте!
https://docs.google.com/spreadsheets/d/1RxWhIvTprmnVHxUpRXOonLgBrfv7YL6cevGWaNo26nE/edit#gid=135585788
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
быстро!
источник

MM

Mykola Melnyk in Чат | Google Таблицы и скрипты
источник

MM

Max Makhrov in Чат | Google Таблицы и скрипты
Michael Smirnov
=SPARKLINE(MMULT(SEQUENCE(1; ROWS(B2:G); 1; 0); ARRAYFORMULA(--B2:G)) ; {"charttype" \ "column"})
Похожий вариант:

=SPARKLINE(ArrayFormula(mmult(TRANSPOSE('СУММ'!B2:G*1); sign(ROW('СУММ'!B2:G))) ) ; {"charttype" \ "column"})
источник

МВ

Михаил Варнаков... in Чат | Google Таблицы и скрипты
таблички и таблички, да) гугл..эксель.. какая разница какие😅
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
ну что тебе сказать? ты пришел в канал про Таблицы, тебе отправили сообщение, что нужно отправить пример в Таблице и ты все равно шлешь excel
источник

MM

Mykola Melnyk in Чат | Google Таблицы и скрипты
у меня с гуглом проблем нет, а вот приходят отчеты в экселе и даты в разных форматах
источник

VP

Vitaliy P. in Чат | Google Таблицы и скрипты
Vladislav
=ARRAYFORMULA(LEN(REGEXREPLACE(B5:B; "([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)"; "↻")) - LEN(SUBSTITUTE(REGEXREPLACE(B5:B; "([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)"; "↻"); "↻"; "")))
Работает с 9 и 10 строками тоже
Я добавляю в строку слеш и ваш валидатор сломан
E-mail: std/delo@mail.ru asdsad@asd.as
А раз его так просто сломать, то и страдать с перечислениями символов бессмысленно
=ARRAYFORMULA(LEN(REGEXREPLACE(A3:A; "(\w+@\w+\.\w+)"; "↻")) - LEN(REGEXREPLACE(A3:A; "(\w+@\w+\.\w+)"; "")))
источник

MS

Michael Smirnov in Чат | Google Таблицы и скрипты
Max Makhrov
Похожий вариант:

=SPARKLINE(ArrayFormula(mmult(TRANSPOSE('СУММ'!B2:G*1); sign(ROW('СУММ'!B2:G))) ) ; {"charttype" \ "column"})
*1 в 'СУММ'!B2:G*1 - это что?
источник