Как извлечь уникальные данные из столбца в листах Google с соответствующими значениями, используя скрипт Google Apps? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть лист Google с 35 столбцами и более 1000 строк.Я хочу извлечь на новый лист только уникальные данные из столбца № 5 со всеми оставшимися 34 соответствующими значениями.Моя строка № 4 является столбцом даты, поэтому дата должна быть самой последней, когда уникальное значение столбца № 5 извлекается на новый лист.

1 Ответ

0 голосов
/ 03 июня 2018

Я ответил на этот вопрос для вас в Quora, но так как никто другой не получил здесь ответа, я решил дважды опубликовать его, чтобы оказать дополнительную помощь для будущих поисков в Google.

Код нижеэто базовый шаблон, который должен решить ваши проблемы, но я буду вдаваться в подробности, чтобы помочь вам понять, что он делает и как он работает.

=FILTER(
    SORT(Work!A:D,1,FALSE),
    SORT(Work!A:A,1,FALSE) = UNIQUE(SORT(Work!A:A,1,FALSE))
 )

=FILTER(range to be filtered, conditions that dictate what will pass the filter, more conditions)

=SORT(Range, by column, (true = ascending,false = descending (reverse) order))

Итак, мы применяем FILTER и используем первыйСортировка, чтобы диктовать, что весь лист должен быть отсортирован в обратном порядке (я использовал обратный порядок, потому что мои даты пришли последовательно, как это типично для данных, введенных в форму, или для большинства стандартных настроек электронной таблицы).Если ваш лист уже настроен в обратном порядке, вы можете отбросить все формулы SORT и сказать что-то вроде:

=FILTER(Work!A:D,Work!A:A = UNIQUE(Work!A:A))

Теперь, в моем примере я написал:

SORT(Work!A:D,1,FALSE)

Здесь важно отметить, что поскольку это раздел фильтра, который определяет диапазон, который мы хотим вернуть, вы должны указать все строки, которые вы хотите видеть в выходных данных.Я поместил Работу! A: D, потому что это был размер листа, с которым я работал.Поскольку вы используете 35 столбцов, я полагаю, что вы будете использовать A: AI.

Далее, вы идентифицируете только столбец, который вы хотите отсортировать уникальным образом, и делаете это, задавая SORT (Sheet! DesiredColumn: DesiredColumn,1, FALSE).Каждая часть листа должна быть отсортирована в одном направлении, чтобы получить правильные результаты.Наконец, мы сравниваем отсортированный столбец с массивом UNIQUE того же отсортированного столбца, поэтому SORT(Work!A:A,1,FALSE) = UNIQUE(SORT(Work!A:A,1,FALSE)).

Это просто сравнение строки с уникальной версией самой себя, которая будет возвращать только уникальные параметры в указанном вами порядке, чтобы сначала получить самые последние записи.Путем подачи уникально отсортированных записей в качестве исключающих параметров в основной диапазон фильтров вы сможете извлечь всю строку для каждой уникальной записи в нужном столбце.Итак, ваша окончательная формула будет выглядеть примерно так:

=FILTER(
    SORT(Sheet1!A:AI,1,FALSE),
    SORT(Sheet1!E:E,1,FALSE) = UNIQUE(SORT(Sheet1!E:E,1,FALSE))
 )

, где Sheet1 - это имя листа, с которого вы сортируете данные.Надеюсь, это поможет вам решить проблемы с данными сейчас и в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...