Извлечь список уникальных значений из двух столбцов без формулы массива или VBA

Извлечь список уникальных значений из двух столбцов без формулы массива или VBA

У меня есть два столбца данных, A и B. Я хотел бы объединить эти столбцы так, чтобы в окончательный список попали только уникальные значения. В данный момент я использую формулу массива изhttps://www.get-digital-help.com/2009/06/16/извлечение-уникального-списка-из-двух-столбцов-с помощью-формулы-массива-excel-2007/:

{=IFERROR(IFERROR(INDEX($A$2:$A$20, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$20), 0)), INDEX($B$2:$B$7, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$7), 0))), "")} 

Хотя это работает замечательно, я бы хотел избегать формул массива, если это вообще возможно, так как они значительно замедляют наши и без того паршивые ПК. Мы также не можем использовать VBA по ряду причин, так что это тоже не вариант.

Есть какой-либо способ сделать это?

решение1

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

В столбце A содержится набор данных, скажем, 200 общих значений.

Столбец B содержит второй набор данных, скажем, 175 значений.

Столбец C проверяет, присутствует ли значение из столбца B в столбце A.

 =IF(COUNTIF($A$2:$A$750,B2)>0,"Match","No Match")

В столбце E есть счетчик, который просто отслеживает, где мы находимся относительно конца набора данных в столбце A.

=IF(A2=0,MAX($E$1:E1)+1,"")

В столбце F есть счетчик, который увеличивается каждый раз, когда столбец C указывает уникальное значение.

=IF(C2="No Match",MAX($F$1:F1)+1,"")

Столбец G — это место, где объединяются два набора данных. Сначала он перечисляет значения в A. Как только он достигает конца списка и начинает находить нули, он использует индекс, созданный в столбце E, чтобы найти первое уникальное значение в B, и увеличивает его, пока не достигнет конечного значения.

=IF(A2=0,IF(E2>MAX(F:F),"",INDEX(B:B,MATCH(E2,F:F))),A2)

решение2

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

И ответ на ваш вопрос — да, это просто подразумевает использование дополнительного INDEX() для каждой части. Вот модификация:

=IFERROR(INDEX($A$2:$A$20,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$20),0),0)),INDEX($B$2:$B$7,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$7),0),0)))

Я оставил самый внешний IFERROR(). Надеюсь, это поможет.

Связанный контент