Excel 2010 – Daten verschieben

Excel 2010 – Daten verschieben

Ich habe eine Tabelle, aus der ich einige Daten extrahieren muss, und bin nicht ganz sicher, wie das geht.

Hier ist ein Beispiel der Tabelle.

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

Ich muss die Aufwandsnote in die Aufwandsspalte verschieben, aber in eine andere Zeile. Beispiel unten.

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

Also ein Beispiel dessen, was ich will ...

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

Der Clou dabei ist, dass nicht alle Studenten eine Leistungsnote haben, und wenn sie keine haben, gibt es dafür keine Zeile. Außerdem gibt es manchmal eine zusätzliche Zeile mit Kommentaren usw., die Daten sind also nicht konstant.

Antwort1

Kopieren Sie in einem neuen Blatt die Überschriften ( A1:F1) und geben Sie eine 1 in eine Hilfsspalte ein. Ich gehe davon aus, dass Sie Column  G, also cell ,  verwenden G1. Geben Sie

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

in  A2und ziehen/füllen Sie nach rechts, bis  F2. Wechseln Sie dann  E2zu

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

und geben Sie ein

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

in  G2. Auswählen A2:G2und so weit wie nötig nach unten ziehen/füllen.

Dann blenden Sie die Spalte aus  G, wenn Sie möchten.

Spalte  Gist der Index (auf dem neuen Blatt) der Zeile in , Sheet1 aus der wir (hauptsächlich) Daten ziehen. Er ist um eins höher als der Index der vorherigen Zeile, es sei denn, diese zeigt auf eine Zeile mit dem CODE . GRADEIn diesem Fall nehmen wir an, dass es sich um eine EFFORTZeile handelt und addieren zwei zur vorherigen (d. h. wir überspringen die EFFORTZeile). Spalten  A- Dund  Fwerden einfach aus derselben Spalte in kopiert Sheet1, wie durch Spalte indiziert  G. Die Formel in Spalte  E(EFFORT) prüft, ob der aktuelle Student einer mit zwei Zeilen ist (sich also $G2+1auf denselben Studenten mit einem CODE von bezieht EFFORT) und zieht, wenn ja, die EFFORT-Note aus Spalte  Ddieser zweiten Zeile.

Für diese Daten gilt:

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

Ich habe dieses Ergebnis erhalten:

Kalkulationstabelle

Antwort2

Das kriegst du auch ohne Pivot hin.

Tragen Sie basierend auf Ihrem Beispiel Folgendes in Ihre EffortSpalte ein Sheet2:

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

und drücken Sie Ctrl+ Shift+ Enter, um die Array-Formel einzufügen.

Erläuterung

Sheet1!$D$2:$D$10ist Ihre EffortSpalte in Ihrer Quelltabelle auf Blatt1.

(Sheet2!$C2 = Sheet1!$C$2:$C$10)sucht nach dem passendenFULLNAME

(Sheet1!$F$2:$F$10 = "EFFORT")sucht nach dem passenden CODE, nämlich "EFFORT"

Beide geben einen booleschen Wert zurück, 0und 1. Wenn beide Bedingungen erfüllt sind (eine Zeile mit übereinstimmendem FULLNAME und CODE gefunden), wird 1 ( 1 * 1) an die MATCHFunktion zurückgegeben.

verwandte Informationen