Excel 2010 moviendo datos

Excel 2010 moviendo datos

Tengo una tabla de la que necesito extraer algunos datos y no estoy muy seguro de cómo hacerlo.

A continuación se muestra un ejemplo de la tabla.

|   A    +   B    +       C       +   D   +   E    +   F    |
|--------+--------+---------------+-------+--------+--------|
| FNAME  | LNAME  | FULLNAME      | GRADE | EFFORT | CODE   |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | A     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | H     |        | EFFORT |
|--------+--------+---------------+-------+--------+--------|
| FNAME2 | LNAME2 | FNAME2 LNAME2 | C     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|

Lo que necesito es mover el grado de esfuerzo a la columna de esfuerzo, pero en una fila diferente. Ejemplo a continuación.

|   A   +   B   +     C     +   D   +   E    +   F    |
|-------+-------+-----------+-------+--------+--------|
| FNAME | LNAME | FULLNAME  | GRADE | EFFORT | CODE   |
|-------+-------+-----------+-------+--------+--------|
| NAME1 | NAME1 | NAMENAME1 | A     |        | GRADE  | ←      To column E here         ←
|-------+-------+-----------+-------+--------+--------|                                 ↑
| NAME1 | NAME1 | NAMENAME1 | H     |        | EFFORT | → Move this Grade from column D ↑
|-------+-------+-----------+-------+--------+--------|

Entonces un ejemplo de lo que quiero...

|   A    +   B    +       C       +   D   +   E    +   F    |
|--------+--------+---------------+-------+--------+--------|
| FNAME  | LNAME  | FULLNAME      | GRADE | EFFORT | CODE   |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | A     | H      | GRADE  |
|--------+--------+---------------+-------+--------+--------|
| FNAME2 | LNAME2 | FNAME2 LNAME2 | C     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|

Lo bueno es que no todos los estudiantes tienen una calificación de esfuerzo, y si no la tienen, no habrá pelea por ello. Además, a veces habrá una fila adicional con comentarios, etc., por lo que los datos no son constantes.

Respuesta1

En una hoja nueva, copie los encabezados ( A1:F1) e ingrese un 1 en una columna auxiliar. Asumiré que estás usando Column  G; es decir, celular  G1. Ingresar

=IF(INDEX(Sheet1!A:A, $G2)<>"", INDEX(Sheet1!A:A, $G2), "")

en  A2y arrastre/rellene hacia la derecha, hasta  F2. Luego cambia  E2a

=IF(INDEX(Sheet1!F:F, $G2+1)="EFFORT", INDEX(Sheet1!D:D, $G2+1), "")

y entrar

=IF(INDEX(Sheet1!F:F, $G1+1)="GRADE", $G1+1, $G1+2)

en  G2. Seleccione A2:G2y arrastre/rellene tanto como sea necesario.

Luego oculta la Columna  G, si quieres.

La columna  Ges el índice (en la nueva hoja) de la fila de Sheet1 la que (principalmente) estamos extrayendo datos. Es uno más que el índice de la línea anterior a menos que apunte a la fila cuyo CÓDIGO sea GRADE, en cuyo caso asumimos que es una EFFORTfila y sumamos dos a la anterior (es decir, para saltarnos la EFFORTfila). Columnas  A: Dy  Fsimplemente se copian de la misma columna Sheet1, según lo indexado por Columna  G. La fórmula en la Columna  E(ESFUERZO) busca ver si el estudiante actual es uno con dos filas (por lo tanto, $G2+1se refiere al mismo estudiante, con un CÓDIGO de EFFORT) y, de ser así, extrae la calificación de ESFUERZO de la Columna  Dde esa segunda fila.

Para estos datos:

+   A   +   B    +      C       +   D   +   E    +   F    +
+-------+--------+--------------+-------+--------+--------+
| FNAME | LNAME  |   FULLNAME   | GRADE | EFFORT |  CODE  |
+-------+--------+--------------+-------+--------+--------+
| John  | Smith  | John Smith   | A     |        | GRADE  |
| John  | Smith  | John Smith   | H     |        | EFFORT |
| Mary  | Jones  | Mary Jones   | B     |        | GRADE  |
| Isaac | Newton | Isaac Newton | A+    |        | GRADE  |
| Isaac | Newton | Isaac Newton | C     |        | EFFORT |
+-------+--------+--------------+-------+--------+--------+

Obtuve este resultado:

hoja de cálculo

Respuesta2

Puedes manejar eso sin pivotar.

Según su ejemplo, coloque esto en su Effortcolumna en Sheet2:

=INDEX(Sheet1!$D$2:$D$10, MATCH(1, (Sheet2!$C2 = Sheet1!$C$2:$C$10) * (Sheet1!$F$2:$F$10 = "EFFORT"), 0))

y presione Ctrl+ Shift+ Enterpara insertar la fórmula matricial.

Explicación

Sheet1!$D$2:$D$10es su Effortcolumna en su tabla fuente en la Hoja1.

(Sheet2!$C2 = Sheet1!$C$2:$C$10)está buscando la coincidenciaFULLNAME

(Sheet1!$F$2:$F$10 = "EFFORT")está buscando la coincidencia CODE, que es "ESFUERZO"

Ambos devuelven un valor booleano 0y 1. Si ambas condiciones coinciden (encontró una fila con NOMBRE COMPLETO y CÓDIGO coincidentes), devuelve 1 ( 1 * 1) a la MATCHfunción.

información relacionada