En una hoja de Excel, tengo dos conjuntos de datos diferentes de tres columnas cada uno, que representan datos muy similares.
Me gustaría combinar esto en un conjunto de tres columnas.
Cada conjunto de datos tiene su columna más a la izquierda como clave por la que me gustaría agrupar.
Una clave aparece una vez o nunca en cada conjunto de datos. Las otras columnas son numéricas y pueden estar vacías (interpretadas como cero). Las dos series pueden tener diferentes longitudes.
Al igual que:
[Name_A],[Score_A],[Value_A],[Name_B],[Score_B],[Value_B]
Adam,14,20,Johnny,8,
Johnny,11,,Bernice,5,5
,,,Adam,2,8
debe agregarse en:
[Name],[Score],[Value]
Adam,16,28
Johnny,19,
Bernice,5,5
El orden de las filas en el resultado final no es importante.
Respuesta1
Respuesta2
La clave para fusionar sus conjuntos de datos es extraer una lista de nombres únicos. Esto esmuchomás fácil si los nombres están todos en una columna. Si debe tener sus datos organizados como lo ha mostrado, existe una solución VBA, así que comente a continuación si la necesita.
En la primera tabla a continuación, moví los datos "B" debajo de los datos "A" y agregué algunas filas más en cada sección.
Esta fórmula, completada desde E2, enumera los nombres y elimina duplicados:
=IFERROR(INDEX((A$2:A$15),MATCH(0,COUNTIF($E$1:E1,A$2:A$15),0)),"")
Es una fórmula matricial, por lo que se debe ingresar con CTRLShiftEnter.
Estas dos fórmulas, completadas desde F2 y G2, suman la puntuación y el valor de cada nombre de la lista:
=IF(LEN(E2)<1,"",SUMIF(A$2:A$15,E2,B$2:B$15))
=IF(LEN(E2)<1,"",SUMIF(A$2:A$15,E2,C$2:C$15))
______________________________________________________________________
Cómo funciona:El interno COUNTIF()
crea una matriz del número de veces que cada uno de los nombres de la columna A aparece en la lista creciente de la columna E. Encuentra MATCH()
la posición del primer 0 (correspondiente a un nombre que aún no ha aparecido en la lista) en esa matriz , y que se utiliza como número_fila en un INDEX()
, que selecciona el nombre de la columna A. Los nombres que ya se han enumerado no vuelven a aparecer.
¡ IFERROR()
Inserta espacios en blanco para las filas que tendrían un #NUM! error cuando la fórmula se queda sin valores únicos.
Las dos SUMIF()
fórmulas simplemente suman los números de puntuación y valor de cada nombre. Inserta IF()
un espacio en blanco para las filas donde la longitud de la columna E es < 1 (es decir, la celda no tiene nombre y aparece en blanco).