РЕДАКТИРОВАТЬ # 2
Обнаружена ошибка во вложенных IF функциях из второй предоставленной вами формулы.
В пробной формулесделать IF(IF(A)+IF(B)=2,0,1)
, но, по моему мнению, правильный путь должен быть IF((IF(A)+IF(B))=2,0,1)
.
На основе предоставленного вами образца листа введите в ячейку следующую формулу J2
:
=INDEX(A$2:A$861,MATCH(0,COUNTIF(J$1:J1,A$2:A$861)+IF((IF(COUNTIF(B$2:B$243,A$2:A$861)>0,1,0)+IF(COUNTIF(C$2:C$162,A$2:A$861)>0,1,0)+IF(COUNTIF(D$2:D$132,A$2:A$861)>0,1,0)+IF(COUNTIF(E$2:E$118,A$2:A$861)>0,1,0)+IF(COUNTIF(F$2:F$112,A$2:A$861)>0,1,0)+IF(COUNTIF(G$2:G$94,A$2:A$861)>0,1,0)+IF(COUNTIF(H$2:H$81,A$2:A$861)>0,1,0))=7,0,1),0))
Обратите внимание, что это формула массива , поэтому вам нужно сделать следующее после ввода вышеуказанной формулы:
Выберите диапазон , нажмите CONTROL + U , а затем нажмите COMMAND + RETURN
В случае, если вышеприведенное не работает для вас:
Выберите диапазон, нажмите CONTROL + U , а затем нажмите COMMAND + SHIFT + RETURN
Пожалуйста, прочитайте это, если вам все еще неясно: Как использовать формулу массива в Excel Mac (Кто бы знал, что использование формулы массива в Excel для Mac такая боль ...)
Перетаскивайте формулу вниз, пока список не возвращает #N/A
ошибка, которая означает, что вы нашли все общие значения.
Предположим, у вас есть с именем этот список общих значений как Список , мой опыт работы с Excel 2016 для Windows заключается в том, что вы возвращаетесь к исходной таблице, выделяете всю таблицу, переходите к Условное форматирование в Home Tab
, переходите к New Rule...
, переходите кдо последней опции и введите следующую формулу в качестве правила форматирования:
=MATCH(A2,List,0)>0
Учитывая, что Power Query не поддерживается в Excel 2011 and Excel 2016 for Mac
, игнорируйте следующий подход, используя Power Query .Подход к силовому запросу FYI в этом случае намного быстрее, чем приведенный выше метод формул массива ...
Судя по вашему сообщению и приведенному вами примеру, я думаю, что вы хотите найти общие значения, представленные в all 8 Столбцы, что означает, что вы будете игнорировать значения, появившиеся в 7, 6, 5 или меньших столбцах.
Учитывая, что вы имеете дело с большим набором данных (860 x 8
),Я предлагаю использовать Power Query для решения проблемы.Power Query - это встроенная функция в Excel 2010 Professional Plus и во всех более поздних версиях Excel.
Шаги:
- Использование Из таблицы функция под *Вкладка 1095 * для загрузки данных в Power Query Editor;
- Выделите все столбцы, затем используйте функцию Unpivot Columns на вкладке
Transform
, чтобы преобразовать таблицу в таблицу с 2 столбцами; - Использование функции Группировка по в столбце
Transform
группа вкладок Value
путем подсчета отдельных строк, как указано ниже;
Щелкните правой кнопкой мыши поле
filer справа от заголовка столбца, чтобы заполнить список с помощью
8
, который будет возвращать значения, появившиеся во всех 8 столбцах;
Close& Загрузите столбец (который фактически является таблицей из одного столбца) в новый рабочий лист (по умолчанию).
Вот запрос мощности M кодов за сценой только для справки.Все шаги используют встроенные функции редактора, что довольно просто.
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"d0", Int64.Type}, {"d1", Int64.Type}, {"d2", Int64.Type}, {"d3", Int64.Type}, {"d4", Int64.Type}, {"d5", Int64.Type}, {"d6", Int64.Type}, {"d7", Int64.Type}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Columns", {"Value"}, {{"Count", each Table.RowCount(Table.Distinct(_)), type number}}),
#"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each ([Count] = 8)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Count"})
in
#"Removed Columns"