Movendo dados do Excel 2010

Movendo dados do Excel 2010

Eu tenho uma tabela da qual preciso extrair alguns dados e não tenho muita certeza de como fazer isso.

Aqui está um exemplo da tabela.

|   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  |
|--------+--------+---------------+-------+--------+--------|

O que preciso é mover a nota de esforço para a coluna de esforço, mas em uma linha diferente. Exemplo abaixo.

|   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 ↑
|-------+-------+-----------+-------+--------+--------|

Então, um exemplo do que eu quero...

|   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  |
|--------+--------+---------------+-------+--------+--------|

O problema é que nem todos os alunos têm nota de esforço e, se não tiverem, não haverá briga por isso. Além disso, às vezes haverá uma linha extra com comentários, etc... então os dados não são constantes.

Responder1

Em uma nova planilha, copie os cabeçalhos ( A1:F1) e insira 1 em uma coluna auxiliar. Presumo que você esteja usando Column  G; ou seja, célula  G1. Digitar

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

into  A2e arraste/preencha para a direita, para  F2. Então mude  E2para

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

e entre

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

em  G2. Selecione A2:G2e arraste/preencha até onde for necessário.

Em seguida, oculte Column  G, se desejar.

Coluna  Gé o índice (na nova planilha) da linha da Sheet1 qual estamos (principalmente) extraindo dados. É um a mais que o índice da linha anterior, a menos que aponte para a linha cujo CODE é GRADE, caso em que assumimos que é uma EFFORTlinha e adicionamos dois à linha anterior (ou seja, para pular a EFFORTlinha). Colunas  A- De  Fsão simplesmente copiadas da mesma coluna em Sheet1, conforme indexado por Column  G. A fórmula na Coluna  E(ESFORÇO) procura ver se o aluno atual é aquele com duas linhas (portanto, $G2+1refere-se ao mesmo aluno, com um CÓDIGO de EFFORT) e, em caso afirmativo, extrai a nota de ESFORÇO da Coluna  Ddessa segunda linha.

Para estes dados:

+   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 |
+-------+--------+--------------+-------+--------+--------+

Eu obtive este resultado:

planilha

Responder2

Você pode lidar com isso sem pivô.

Com base no seu exemplo, coloque isso na sua Effortcoluna Sheet2:

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

e pressione Ctrl+ Shift+ Enterpara inserir a fórmula de matriz.

Explicação

Sheet1!$D$2:$D$10é a sua Effortcoluna na tabela de origem na Planilha1.

(Sheet2!$C2 = Sheet1!$C$2:$C$10)está procurando a correspondênciaFULLNAME

(Sheet1!$F$2:$F$10 = "EFFORT")está procurando a correspondência CODE, que é "EFFORT"

Ambos retornam valor booleano 0e 1. Se ambas as condições corresponderem (encontrada uma linha com FULLNAME e CODE correspondentes), ela retornará 1 ( 1 * 1) para a MATCHfunção.

informação relacionada