Уникализатор / пользовательская функция от нашего канала
Привет! Работает так: передаёте в функцию диапазон и указываете номер столбца с ключом, а функция:
1) возврат вам только по одной строке с каждым ключом;
2) эти строки будут "максимально обогащенными" - функция оставит в каждой ячейке строки последнее непустое значение по ключу строки (смотрите что получилось на скриншоте, ключи - Пушкин и Гумилёв);
3) на входе отфильтровываются все
Функция текстом:
Таблица с примером
★ Канал про Таблицы: @google_sheets
★ Оглавление канала: goo.gl/HdS2qn
★ Чат: @google_spreadsheets_chat
★ Избранные посты нашего канала: t.me/google_sheets/418
Привет! Работает так: передаёте в функцию диапазон и указываете номер столбца с ключом, а функция:
1) возврат вам только по одной строке с каждым ключом;
2) эти строки будут "максимально обогащенными" - функция оставит в каждой ячейке строки последнее непустое значение по ключу строки (смотрите что получилось на скриншоте, ключи - Пушкин и Гумилёв);
3) на входе отфильтровываются все
#N/A
и #REF
;Функция текстом:
function unique_googlesheets(arr, key) {
key = key - 1;
let o = {};
arr.map(row => row.map(cell => ['#REF!', '#N/A'].includes(cell) ? '' : cell))
.forEach(y => {
if (!(y[key] in o)) {
o[y[key]] = y;
} else {
o[y[key]] = o[y[key]].map((h, i) => y[i] || h)
}
})
return Object.values(o);
}
Таблица с примером
★ Канал про Таблицы: @google_sheets
★ Оглавление канала: goo.gl/HdS2qn
★ Чат: @google_spreadsheets_chat
★ Избранные посты нашего канала: t.me/google_sheets/418
Оберни колонки: новая (относительно) функция WRAPCOLS
Итак, нам с вами нужно превратить одномерный массив — например, столбец, в котором данные цикличные (время начала мероприятия + N строк с выступающими в нашем примере) — в двумерный, разместив каждый повторяющийся "блок" в отдельный столбец.
Засунем диапазон в WRAPCOLS, вторым аргументом укажем, сколько ячеек отправлять в каждый столбец. Необязательный третий аргумент — как возвращать пустые ячейки из исходника, если они там будут. Иначе будет выводиться ошибка #N/A (#Н/Д).
— значит — это кому-нибудь нужно? есть и WRAPROWS.
P.P.S. В Excel (365) при русскоязычном интерфейсе — СВЕРНСТОЛБЦ и СВЕРНСТРОК.
Итак, нам с вами нужно превратить одномерный массив — например, столбец, в котором данные цикличные (время начала мероприятия + N строк с выступающими в нашем примере) — в двумерный, разместив каждый повторяющийся "блок" в отдельный столбец.
Засунем диапазон в WRAPCOLS, вторым аргументом укажем, сколько ячеек отправлять в каждый столбец. Необязательный третий аргумент — как возвращать пустые ячейки из исходника, если они там будут. Иначе будет выводиться ошибка #N/A (#Н/Д).
=WRAPCOLS(A1:A;N; [чем заменить пустые])Можно и открытый диапазон использовать, но тогда справа от функции ничего нельзя будет вводить вручную, так как она будет требовать много-много столбцов. Можно фильтровать с помощью FILTER, оставляя только заполненные ячейки.
=WRAPCOLS(FILTER(A1:A;A1:A<>"");N)P.S. Раз есть функция WRAPCOLS
P.P.S. В Excel (365) при русскоязычном интерфейсе — СВЕРНСТОЛБЦ и СВЕРНСТРОК.
Отбираем по ошибке #N/A строки в QUERY и FILTER
Друзья, иногда в наших датасетах может быть ошибка #N/A (not available или значение не доступно).
Показываем, как отобрать строки или значения с ошибкой и без:
1. Для QUERY, отбираем строки с N/A:
2. Для QUERY, отбираем строки без N/A:
3. Чтобы отобрать N/A в FILTER:
4. Ну и отбираем всё, кроме N/A в FILTER:
Друзья, иногда в наших датасетах может быть ошибка #N/A (not available или значение не доступно).
Показываем, как отобрать строки или значения с ошибкой и без:
1. Для QUERY, отбираем строки с N/A:
=QUERY(A1:A12;"where Col1 = '#N/A'";0)
2. Для QUERY, отбираем строки без N/A:
=QUERY(A1:A12;"where Col1 != '#N/A'";0)
3. Чтобы отобрать N/A в FILTER:
=FILTER(A1:A12;ISNA(A1:A12))
4. Ну и отбираем всё, кроме N/A в FILTER:
=FILTER(A1:A12;NOT(ISNA(A1:A12)))