
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 A2
und ziehen/füllen Sie nach rechts, bis F2
. Wechseln Sie dann E2
zu
=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:G2
und so weit wie nötig nach unten ziehen/füllen.
Dann blenden Sie die Spalte aus G
, wenn Sie möchten.
Spalte G
ist 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 . GRADE
In diesem Fall nehmen wir an, dass es sich um eine EFFORT
Zeile handelt und addieren zwei zur vorherigen (d. h. wir überspringen die EFFORT
Zeile). Spalten A
- D
und F
werden 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+1
auf denselben Studenten mit einem CODE von bezieht EFFORT
) und zieht, wenn ja, die EFFORT-Note aus Spalte D
dieser 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:
Antwort2
Das kriegst du auch ohne Pivot hin.
Tragen Sie basierend auf Ihrem Beispiel Folgendes in Ihre Effort
Spalte 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$10
ist Ihre Effort
Spalte 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, 0
und 1
. Wenn beide Bedingungen erfüllt sind (eine Zeile mit übereinstimmendem FULLNAME und CODE gefunden), wird 1 ( 1 * 1
) an die MATCH
Funktion zurückgegeben.