Excel - Фильтр значений со специальными правилами для дубликатов

1

У меня есть два местоположения (комнаты) и несколько идентификаторов, которые находятся во многих отношениях; каждый идентификатор может встречаться один или несколько раз в одной или обеих комнатах. Вот небольшой пример:

ID:       Location
1         Room_1
2         Room_2
3         Room_1
3         Room_2
4         Room_1
4         Room_1

Я хотел бы разделить идентификаторы на две группы в зависимости от местоположения. Если идентификатор появляется только в Room_1, я хочу, чтобы он входил в группу 1. Если идентификатор появляется только в Room_2, я хочу, чтобы он входил в группу 2. Если идентификатор появляется в более чем одном экземпляре (строке), например 3 и 4 выше, я хочу сгруппировать его в группу 2, если какой-либо из идентификаторов относится к комнате 2. Если имеется несколько экземпляров, но все они находятся в комнате 1, то идентификатор может остаться в группе 1.

Поэтому в этом примере я бы хотел, чтобы идентификаторы 1 и 4 были в первой группе, а идентификаторы 2 и 3 - во второй.

Идеальным решением было бы разделить их на отдельные листы, но любое разделение было бы хорошо.


Вот большая выборка данных:

ID: Расположение
1 комната_1
2 Комната_2
3 Room_1
3 Комната_2
4 Room_1
4 Room_1
5 Комната_2
6 Room_1
7 Комната_2
7 Комната_2

После группировки это должно выглядеть так:

Группа 1:

ID: Расположение
1 комната_1
4 Room_1
4 Room_1
6 Room_1

Группа 2:

ID: Расположение
2 Комната_2
3 Room_1
3 Комната_2
5 Комната_2
7 Комната_2
7 Комната_2

Возможно, более простой способ выразить это:

  • Каждый идентификатор, который появляется только в Room_1, входит в группу 1.
  • Каждый идентификатор, который появляется в Room_2 (вообще), входит в группу 2.

    Диаграмма Венна

Кроме того, я хочу сохранить каждую отдельную строку из ввода, даже те, которые идентичны.

СГ4
источник
Вы пытались использовать промежуточный итог? Промежуточный итог имеет полезность для "Groub By" и "count" или "sum". Или вы можете просто отсортировать по столбцу 2 (местоположение).
ejbytes
А как насчет «Сортировать»? Вы пробовали что-нибудь ?
Aganju
@Aganju Я думаю, что это сложнее, чем вы думаете. Да я пробовал сортировать. Когда я сортирую по местоположению, идентификаторы разделяются. Когда я сортирую по идентификатору, местоположения не сортируются. Я хочу, чтобы дубликаты идентификаторов оставались вместе, а местоположения сортировались, как я уже говорил выше.
sg4
@ sg4 Подробнее о ваших данных. Такая группировка была бы полезна в базе данных, такой как MS Access. Вы можете иметь одну «таблицу», как вы ее отобразили, и затем выполнять «запросы» к этой одной таблице. Я могу запросить таблицу, но не испытал тех немногих способов, которыми Excel пытался убедить пользователей, что Excel - это база данных, которой нет, но они добавили новые функции запросов, чтобы дать повод продолжать использовать Excel. Excel легче манипулировать данными, если вы не изучали управление базами данных и SQL. Ищите способ, которым Excel "запрашивает" таблицу.
ejbytes
Поскольку ваш набор данных настолько мал, я ищу логику, но я предпочел предположить, что плохо. Итак, почему идентификаторы 1 и 4 сгруппированы вместе? Исключительно потому, что идентификаторы 1-а-4 находятся в комнате_1? И идентификаторы 2 и 3 разделены почему? Не могли бы вы отредактировать свои данные и вопрос так, чтобы было понятно, что и где и почему?
ejbytes

Ответы:

0

Я думаю, что для решения, которое вы хотели, нужно 4 шага:

ШАГ 1 :

  • Импортируйте свои данные в таблицу ( вкладка «Таблица» )
  • Вставьте сводную таблицу (PT) в столбцы, а не только в текущие данные, на всем пути вниз; это будет сделано для динамического роста, который может быть «обновлен» до PT в меню параметров, когда выбран PT. Обратите внимание на настройку PT справа от изображения.

ШАГ 2 :

  • Просто вставьте = в каждое поле, чтобы скопировать каждую ячейку из «Таблицы вкладок».
  • Во втором столбце вставьте формулу, как показано на вкладке «Копирование», начиная с B2: =IFNA(IF(AND(LOOKUP(A2,Table!$J$3:$AZ$3)=A2,LOOKUP(A2,Table!$J$4:$AZ$4)=A2),"Room_2",Table!B2),Table!B2)

ЭТАП 3 :

  • Вставьте новый лист "Room_1", ​​PT с "Tab Tab".
  • Обратите внимание на фильтр для Room_1 / Location.
  • Смотрите вкладку Room_1 .

ШАГ 4 :

  • Вставьте новый лист "Room_2", PT с "Tab Tab".
  • Обратите внимание на фильтр для Room_2 / Location.
  • Смотрите вкладку Room_2 .

введите описание изображения здесь

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

ejbytes
источник
Спасибо чувак! Я действительно ценю, что вы нашли время, чтобы помочь мне!
sg4
@ sg4 Добро пожаловать! Рад выручить :)
ejbytes
0

Я надеюсь, что вы действительно точно описали свою проблему, и вы не собираетесь говорить что-то вроде: «О, по моим реальным данным, у меня больше двух комнат».

Я предполагаю, что у вас есть «ID» в столбце Aи «Location» в столбце B, а все остальное доступно для производных значений. (Если это не так, просто выдвиньте это в первый неиспользуемый столбец.) Предполагая, что у вас есть заголовки («ID» и «Location») в строке 1,

  • В ячейку C2вставьте=A2 & B2
  • В ячейку D2вставьте =ISERROR(MATCH(A2 & "Room_2", C$2:C$11, 0))
    Replace 11с номером последней строки, в которой у вас есть данные.
  • Выберите ячейки C2и D2, и перетащите / заполните вниз до последней строки, где у вас есть данные.

&является оператором конкатенации строк в Excel Вы также можете сказать CONCATENATE(A2, B2), но A2 & B2, очевидно, гораздо более кратким. Это дает значение , как 1Room_1, 2Room_2, 3Room_1, 3Room_2, ... и т.д., в колонке C. Функция MATCH(A2 & "Room_2", C$2:C$11, 0)(в столбце D) ищет в столбце Cидентификатор вхождения из этой строки, соединенной со строкой Room_2. Другими словами, есть ли строка, где этот идентификатор находится в комнате 2? Если он есть, MATCHвозвращает номер индекса и ISERRORвозвращает FALSE. В противном случае MATCHвозвращает ошибку и ISERRORвозвращает TRUE.

Таким образом, столбец Dсодержит значение ИСТИНА для каждого идентификатора, который появляется только в комнате 1, и значение ЛОЖЬ для любого идентификатора, который появляется (хотя бы один раз) в комнате 2:

            перед сортировкой

Затем Dвыполните сортировку по столбцу в порядке убывания от наибольшего к наименьшему (по убыванию), чтобы строки ИСТИНА располагались перед строками ЛОЖЬ:

            после сортировки

Скотт
источник