Extraiga una lista de valores únicos de dos columnas sin una fórmula matricial o VBA

Extraiga una lista de valores únicos de dos columnas sin una fórmula matricial o VBA

Tengo dos columnas de datos, A y B. Me gustaría fusionar estas columnas de modo que solo se incluyan los valores únicos en la lista final. Por el momento, estoy usando una fórmula matricial dehttps://www.get-digital-help.com/2009/06/16/extract-an-unique-distinct-list-from-two-columns-using-excel-2007-array-formula/:

{=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))), "")} 

Si bien esto funciona maravillosamente, me gustaría evitar las fórmulas de matriz si es posible, ya que ralentizan significativamente nuestras ya de por sí de mala calidad. Tampoco podemos usar VBA por algunas razones, por lo que tampoco es una opción.

¿Hay alguna manera de hacer esto?

Respuesta1

Bueno, encontré una manera de hacerlo que parece funcionar por ahora, pero seguro que no es bonita.

La columna A tiene un conjunto de datos, digamos 200 valores totales.

La columna B tiene un segundo conjunto de datos, digamos 175 valores.

La columna C comprueba si el valor de la columna B está presente en la columna A

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

La columna E tiene un recuento que simplemente realiza un seguimiento de dónde estamos en relación con el final del conjunto de datos en la columna A.

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

La columna F tiene un recuento que aumenta cada vez que la columna C indica un valor único

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

La columna G es donde se combinan los dos conjuntos de datos. Primero, enumera los valores en A. Una vez que llega al final de la lista y comienza a encontrar ceros, usa el índice creado en la columna E para encontrar el primer valor único en B y lo incrementa hasta alcanzar el valor final.

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

Respuesta2

Hay una buena discusión sobre cómo extraer valores únicos y distintos eneste sitio web de tutoriales de Excel.

Y la respuesta a tu pregunta es sí, solo implica usar un INDEX() adicional para cada parte. Aquí está la modificación:

=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)))

Dejé de lado el IFERROR() más externo. Espero que esto ayude.

información relacionada