1

У меня есть два столбца данных, A и B. Я хотел бы объединить эти столбцы так, чтобы в окончательный список были включены только уникальные значения. В настоящее время я использую формулу массива из https://www.get-digital-help.com/2009/06/16/extract-an-unique-distinct-list-from-two-columns-using- 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 по причинам, поэтому это тоже не вариант.

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

2 ответа2

0

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

Столбец 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. Как только он достигает конца списка и начинает находить 0, он использует индекс, созданный в столбце E, чтобы найти первое уникальное значение в B, и увеличивает его до тех пор, пока не достигнет конечного значения.

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

На этом учебном веб-сайте 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)))

Я остановился на самом внешнем ИГЕРРОРЕ (). Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .