Excel 2003: wie Matrix für SVerweis zusammenbauen?

Hallo,
EDV 310807 Kre 130907 EDV 250907 WiSo 280907
Name % Note % Note % Note % Note
Berta 55,0 4,0 4,0 74,0 4,0 74,0 4,0
Frieda 100,0 1,0 1,0 77,0 1,0 77,0 1,0
Heinz 76,0 3,0 3,0 85,0 3,0 85,0 3,0

oben abgebildete Tabelle habe ich in Excel.

Die Bezeichnungen in der obersten Zeile (z. B. EDV 310807) sind auch die Bezeichnungen der einzelnen Tabellenblätter, aus denen die Daten in diese Tabelle zusammengezogen werden.

In der Zelle, in der jetzt die Zahl 55,0 steht (also die Prozent von Berta in EDV 310807) steht folgende Funktion:

=WENN(ISTZAHL(SVERWEIS($A5;‚EDV 310807‘!A8:smiley:27;2)); SVERWEIS($A5;‚WiSo 280907‘!A8:smiley:27;3;FALSCH); " ")

Den Teil „‚EDV 310807‘!A8:smiley:27“ würde ich gerne automatisch erstellen lassen. Ich habe es bereits einzeln versucht mit Verketten(B3;!a8:d27). Das funktioniert auch genau so, wie ich es will. Aber kaum baue ich den Teil in den Sverweis ein, kriege ich entweder eine leere Zelle zurück oder „Fehler“.

Was mache ich denn falsch?

Viele Grüße
Merlinchen

Hi Merlinchen,

unter dem Eingabefenster wird der pre-Tag erklärt, benutze den bitte, dann sieht deine Tabelle annahernd so aus:

Tabellenblatt: [Mappe1]!Tabelle3
 │ A │ B │ C │ D │ E │ F │ G │ H │ I │
──┼────────────┼───────┼────────────┼───┼──────┼────────────┼──────┼─────────────┼──────┤
1 │ EDV 310807 │ │ Kre 130907 │ │ │ EDV 250907 │ │ WiSo 280907 │ │
──┼────────────┼───────┼────────────┼───┼──────┼────────────┼──────┼─────────────┼──────┤
2 │ Name │ % │ Note │ % │ Note │ % │ Note │ % │ Note │
──┼────────────┼───────┼────────────┼───┼──────┼────────────┼──────┼─────────────┼──────┤
3 │ Berta │ 55,0 │ 4,0 │ │ 4,0 │ 74,0 │ 4,0 │ 74,0 │ 4,0 │
──┼────────────┼───────┼────────────┼───┼──────┼────────────┼──────┼─────────────┼──────┤
4 │ Frieda │ 100,0 │ 1,0 │ │ 1,0 │ 77,0 │ 1,0 │ 77,0 │ 1,0 │
──┼────────────┼───────┼────────────┼───┼──────┼────────────┼──────┼─────────────┼──────┤
5 │ Heinz │ 76,0 │ 3,0 │ │ 3,0 │ 85,0 │ 3,0 │ 85,0 │ 3,0 │
──┴────────────┴───────┴────────────┴───┴──────┴────────────┴──────┴─────────────┴──────┘
Zahlenformate der Zellen im gewählten Bereich:
A1:A5,B1:B2,C1:C2,D1:smiley:2,E1:E2,F1:F2,G1:G2,H1:H2,I1:I2
haben das Zahlenformat: Standard
B3:B5,C3:C5,D3:smiley:5,E3:E5,F3:F5,G3:G5,H3:H5,I3:I5
haben das Zahlenformat: 0,0

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Hallo Reinhard,

vielen Dank für deine Hilfe!

Und ich hatte mich noch gewundert, dass beim Erstellen des Postings alles so schön geordnet war… Jetzt bin ich schlauer :smile:

Viele Grüße
Merlinchen

Hi Merlinchen,

unter dem Eingabefenster wird der pre-Tag erklärt, benutze den
bitte, dann sieht deine Tabelle annahernd so aus:

Hallo Merlinchen,

es will. Aber kaum baue ich den Teil in den Sverweis ein,
kriege ich entweder eine leere Zelle zurück oder „Fehler“.

bei diesem beschriebenen Fehler ist fast immer das Format der Zellen, die miteinander verglichen werden, unterschiedlich.

Wenn das Suchkriterium z. B. das Format Zahl hat, in der 1. Spalte der Matrix die gefundene Zelle aber das Format Text hat, erkennt Excel das nicht und somit findet die Formel nichts. Excel ist nicht intelligent so wie wir, Excel macht nur, was du vorgibst. Du sagst: suche Zahl, und Excel sucht Zahl, aber die 1. Spalte hat Text (auch wenn das wie Zahl aussieht) und das ist was anderes, also kein Treffer.

Du kannst das wie folgt prüfen:

Such dir einen Wert für das Suchkriterium in der Matrix aus, den du mit der SVERWEIS-Funktion finden willst. Kopiere diesen Wert und setze den direkt in deine Formel als 1. Parameter ein, wenn deine Formel jetzt das Ergebnis anzeigt, also findet, weißt du wo der Fehler liegt. Deine Aufgabe ist es dann die Formate passend zu machen.

Oder (ist vielleicht schneller und leichter zu verstehen):

Setze in deine SVERWEIS-Funktion den 1. Parameter, egal ob da Text oder ne Zahl steht, in Anführungsstriche
also =sverweis(„Suchkriterium“;Matrix;Spaltenindex;[Bereich_Verweis])

viel Erfolg
Gruß
Marion

Hi Merlinchen,

probiers mal so:

=WENN(ISTZAHL(SVERWEIS($A5;indirekt(B3&"!A8:smiley:27");2;0));SVERWEIS($A5;‚WiSo 280907‘!A8:smiley:27;3;FALSCH); " ")

Und, ein Leereichen in einer Zeele ist keine gute Idee, lass sie leer oder schreib was rein, aber kein Leerzeichen.

Gruß
Reinhard

OT +z-e+l :smile: o.w.T.

Hallo Merlinchen,

 EDV 310807 Kre 130907 EDV 250907 WiSo 280907 
Name % Note % Note % Note % Note
Berta 55,0 4,0 4,0 74,0 4,0 74,0 4,0
Frieda 100,0 1,0 1,0 77,0 1,0 77,0 1,0
Heinz 76,0 3,0 3,0 85,0 3,0 85,0 3,0

oben abgebildete Tabelle habe ich in Excel.

Die Bezeichnungen in der obersten Zeile (z. B. EDV 310807)
sind auch die Bezeichnungen der einzelnen Tabellenblätter, aus
denen die Daten in diese Tabelle zusammengezogen werden.

In der Zelle, in der jetzt die Zahl 55,0 steht (also die
Prozent von Berta in EDV 310807) steht folgende Funktion:

=WENN(ISTZAHL(SVERWEIS($A5;‚EDV 310807‘!A8:smiley:27;2));SVERWEIS($A5;‚WiSo 280907‘!A8:smiley:27;3;FALSCH); " ")

Den Teil „‚EDV 310807‘!A8:smiley:27“ würde ich gerne automatisch
erstellen lassen. Ich habe es bereits einzeln versucht mit
Verketten(B3;!a8:d27). Das funktioniert auch genau so, wie ich
es will. Aber kaum baue ich den Teil in den Sverweis ein,
kriege ich entweder eine leere Zelle zurück oder „Fehler“.

ich hab mir die Formel noch mal angesehen. Folgendes ist mir aufgefallen:
Die Formel prüft im Blatt „EDV…“, ob ein bestimmter Eintag eine Zahl ist, holt dann aber aus einen anderen Wert aus dem Blatt „Wiso…“

Ich bin mir nicht sicher, ob das so sein soll. Ich vermute, dass geprüft werden soll, ob dort ein Wert steht, wenn ja, soll genau dieser Wert ausgegeben werden, sonst nichts. Dann würde der Fehlerwert #NV unterdrückt werden.

Im Blatt „EDV…“ steht der %-Wert in der 2. Spalte , im Blatt „Wiso…“ in der 3. Spalte? Könnte sein, dann sind die Blätter nicht gleich aufgebaut. Das weiß ich nicht.

Vermutlich soll die Formel einfach nach rechts in die Spalten kopiert und nach unten über die Zeilen ausgefüllt werden.

Dazu müssen die Bezüge angepasst werden. In der Formel ist zwar das Suchkriterium in der Spalte „festgenagelt“ aber nicht die Matrix selbst.

Damit wäre Reinhards Vorschlag noch anzupassen. Für das Kopieren nach rechts (von B5, in D5, in F5, … ). Die Namen der Tabellenblätter stehen in B1, D1, F1, …
aus:

=WENN(ISTZAHL(SVERWEIS($A5;indirekt(B1&"!A8:smiley:27");2;0));SVERWEIS($A5;‚WiSo 280907‘!A8:smiley:27;3;FALSCH); " ")

wird dann:

=WENN(ISTZAHL(SVERWEIS($A5;indirekt(B$1&"!$A$8:blush:D$27");2;0));SVERWEIS($A5;‚WiSo 280907‘!$A$8:blush:D$27;3;FALSCH); " ")

(für den Fall, dass tatsächlich die Blätter und die Spalten gewechselt werden).

Zum Kopieren nach unten Formel in B5:

=WENN(ISTZAHL(SVERWEIS($A5;indirekt(B$1&"!$A$8:blush:D$27");2;0));SVERWEIS($A5;‚WiSo 280907‘!$A$8:blush:D$27;3;FALSCH); " ")

Blattname steht in B1

Für den Fall, dass du nur die Ausgabe von #NV verhindern willst und die Wenn-Funktion zum Unterdrücken des Fehlerwertes benutzt, wäre die gleiche Formel in B5 (zum Ausfüllen nach unten) und die Matrix auch im Dann_Wert automatisch angegeben werden soll:

=WENN(ISTZAHL(SVERWEIS($A5;indirekt(B$1&"!$A$8:blush:D$27");2;0));(SVERWEIS($A5;indirekt(B$1&"!$A$8:blush:D$27");2;0));"")

oder

wie bei meinem Excel (das Blatt muss in einfachen Anführungsstrichen angegeben werden)

=WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("’"&$B$1&"’!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("’"&$B$1&"’!$A$8:blush:D$27");2;0));"")

zum Kopieren nach rechts wird aus INDIREKT("’"&$B$1&"’! dann
INDIREKT("’"&B$1&"’!

Lieben Gruß
Marion

Hallo Marion,

Die Formel prüft im Blatt „EDV…“, ob ein bestimmter Eintag
eine Zahl ist, holt dann aber aus einen anderen Wert aus dem
Blatt „Wiso…“

Ich bin mir nicht sicher, ob das so sein soll. Ich vermute,
dass geprüft werden soll, ob dort ein Wert steht, wenn ja,
soll genau dieser Wert ausgegeben werden, sonst nichts. Dann
würde der Fehlerwert #NV unterdrückt werden.

stimmt, das soll so nicht sein. Ist es normalerweise auch nicht, das entstand nur durch das ständige probieren. In beiden Fällen soll die gleiche Tabelle verwendet werden.

Im Blatt „EDV…“ steht der %-Wert in der 2. Spalte , im Blatt
„Wiso…“ in der 3. Spalte? Könnte sein, dann sind die Blätter
nicht gleich aufgebaut. Das weiß ich nicht.

Das ist absichtlich so. Denn in die zweite Spalte wird die erreichte Punktzahl eingetragen. Wenn da was steht, dann soll er aus der 3. Spalte die berechnete Prozentzahl auslesen.

Vermutlich soll die Formel einfach nach rechts in die Spalten
kopiert und nach unten über die Zeilen ausgefüllt werden.

Auch das ist richtig. Da ich aber bislang nicht viel kopieren kann, weil ich ja noch nicht die Namen der Tabellenblätter automatisch übernehmen kann, spielt das Festsetzen der Zellbezüge noch keine Rolle. Bzw. da, wo es eine Rolle spielt (nach unten) habe ich das in den entsprechenden Zellen auch drin. Die Funktion, die ich hier angegeben habe, soll nur dazu dienen, euch irgendwie verständlich erklären zu können, was ich will - und dazu spielen die Dollar-Zeichen keine Rolle.

Viele Grüße
Merlinchen

Leider noch nicht gelöst
Hallo,

erst einmal vielen Dank für eure Hilfe. Aber ich habe alle Tipps ausprobiert, die waren bisher nur ohne Erfolg.

Hat noch jemand eine Idee, wie ich mein Problem löse?

Viele Grüße
Merlinchen

Hallo Merlinchen,

erst einmal vielen Dank für eure Hilfe. Aber ich habe alle
Tipps ausprobiert, die waren bisher nur ohne Erfolg.

Hat noch jemand eine Idee, wie ich mein Problem löse?

Kannst du die leere Datei, aber mit den Formeln irgendwo hochladen. Dann schau ich mir das mal an.

LG Marion

Hallo Marion,

ich wüsste jetzt keine Möglichkeit, wohin ich dir die Datei mal eben hochladen könnte. Aber wenn es dir recht ist und du deinen E-Mail-Filter überreden kannst, meinen Anhang nicht gleich zu löschen, schicke ich sie dir gerne per Mail.

Viele Grüße
Merlinchen

Tabellen hochladen

ich wüsste jetzt keine Möglichkeit, wohin ich dir die Datei
mal eben hochladen könnte. Aber wenn es dir recht ist und du
deinen E-Mail-Filter überreden kannst, meinen Anhang nicht
gleich zu löschen, schicke ich sie dir gerne per Mail.

Hi Merlinchen,

gehe mal dahin: http://www.hostarea.de und poste hier den Link.

Gruß
Reinhard

Hallo Merlinchen

ich wüsste jetzt keine Möglichkeit, wohin ich dir die Datei
mal eben hochladen könnte. Aber wenn es dir recht ist und du
deinen E-Mail-Filter überreden kannst, meinen Anhang nicht
gleich zu löschen, schicke ich sie dir gerne per Mail.

ab sofort geht deine email mit Anhänge durch

oder besser, so wie Reinhard vorschlug über
http://www.hostarea.de/

oder http://www.badongo.com/
oder http://dateihoster.de/
oder http://www.uploadarea.de/
oder http://imgriff.com/2008/03/23/bis-zu-5-gb-grosse-dat…
oder …

Gruß
Marion

Link zur Datei
Hallo ihr fleisigen Helfer,

hier ist der Link zur Datei.
http://www.hostarea.de/server-04/April-b907852f79.xls

Ich hoffe, ihr könnt was damit anfangen…

Viele Grüße
Merlinchen

hier ist der Link zur Datei.
http://www.hostarea.de/server-04/April-b907852f79.xls

Hi Merlinchen,

hier sind 2 Varianten, mal mit Namen, mal mit Indirekt, wie man so was macht:

Tabellenblatt: C:\Download\[April-b907852f79.xls]!Noten gesamt
 │ A │ B │ C │
───┼─────────┼─────────────┼──────┤
12 │ Klausur │ WiSo 280907 │ │
───┼─────────┼─────────────┼──────┤
13 │ Name │ % │ Note │
───┼─────────┼─────────────┼──────┤
14 │ A │ 55,0 │ 4,0 │
───┼─────────┼─────────────┼──────┤
15 │ B │ 100,0 │ 1,0 │
───┼─────────┼─────────────┼──────┤
16 │ C │ 76,0 │ 3,0 │
───┼─────────┼─────────────┼──────┤
17 │ D │ 67,0 │ 3,0 │
───┴─────────┴─────────────┴──────┘
Benutzte Formeln:
B14: =WENN(ISTZAHL(SVERWEIS($A14;WiSo;2;0));SVERWEIS($A14;WiSo;3;0);"")
B15: =WENN(ISTZAHL(SVERWEIS($A15;WiSo;2;0));SVERWEIS($A15;WiSo;3;0);"")
B16: =WENN(ISTZAHL(SVERWEIS($A16;WiSo;2;0));SVERWEIS($A16;WiSo;3;0);"")
B17: =WENN(ISTZAHL(SVERWEIS($A17;INDIREKT(B12&"!$A$8:blush:D$27");2;0));SVERWEIS($A17;INDIREKT(B12&"!$A$8:blush:D$27");3;0);"")
C14: =WENN(ISTZAHL(SVERWEIS($A14;WiSo;2;0));SVERWEIS($A14;WiSo;4;FALSCH);"")
C15: =WENN(ISTZAHL(SVERWEIS($A15;WiSo;2;0));SVERWEIS($A15;WiSo;4;FALSCH);"")
C16: =WENN(ISTZAHL(SVERWEIS($A16;WiSo;2;0));SVERWEIS($A16;WiSo;4;FALSCH);"")
C17: =WENN(ISTZAHL(SVERWEIS($A17;INDIREKT(B12&"!$A$8:blush:D$27");2;0));SVERWEIS($A17;INDIREKT(B12&"!$A$8:blush:D$27");4;FALSCH);"")

Festgelegte Namen:
WiSo: ='WiSo 280907'!$A$8:blush:D$27

Zahlenformate der Zellen im gewählten Bereich:
A12:A17,B13:C13
haben das Zahlenformat: Standard
B12:C12
haben das Zahlenformat: T.M.JJJJ
B14:B17,C14:C17
haben das Zahlenformat: 0,0
Bedingte Formatierung(en):
B14: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle B14 mit dem Colorindex 3 eingefärbt
C14: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle C14 mit dem Colorindex 3 eingefärbt
B15: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle B15 mit dem Colorindex 3 eingefärbt
C15: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle C15 mit dem Colorindex 3 eingefärbt
B16: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle B16 mit dem Colorindex 3 eingefärbt
C16: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle C16 mit dem Colorindex 3 eingefärbt
B17: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle B17 mit dem Colorindex 3 eingefärbt
C17: 1.te Bedingung: Zellwert ist gleich =" " 
Bei erfüllter Bedingung wird die Zelle C17 mit dem Colorindex 3 eingefärbt

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Hallo Merlinchen,

EDV 310807 Kre 130907 EDV 250907 WiSo 280907
Name % Note % Note % Note % Note
Berta 55,0 4,0 4,0 74,0 4,0 74,0 4,0
Frieda 100,0 1,0 1,0 77,0 1,0 77,0 1,0
Heinz 76,0 3,0 3,0 85,0 3,0 85,0 3,0

oben abgebildete Tabelle habe ich in Excel.

Die Bezeichnungen in der obersten Zeile (z. B. EDV 310807)
sind auch die Bezeichnungen der einzelnen Tabellenblätter, aus
denen die Daten in diese Tabelle zusammengezogen werden.

ich glaubte, die oberste Zeile war Zeile 1, deshalb bezog ich mich auf B1 für „EDV 310807“. Diesen Bezug habe ich korrigiert

oder

wie bei meinem Excel (das Blatt muss in einfachen
Anführungsstrichen angegeben werden)

=WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("’"&$B$1&"’!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("’"&$B$1&"’!$A$8:blush:D$27");2;0));"")

und ich habe den Spaltenindex angepasst, um die Werte aus Spalte 3 und 4 zu holen

B5: =WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("'"&$B$3&"'!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("'"&$B$3&"'!$A$8:blush:D$27");3;0));"")

C5: =WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("'"&$B$3&"'!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("'"&$B$3&"'!$A$8:blush:D$27");4;0));"")

Diese Formeln kannst du nach unten ausfüllen.
Und hier ist die Datei:

http://www.hostarea.de/server-04/April-9dccc83498.xls
In der Datei sind die Formeln bereits eingesetzt und es gibt einen Hinweis, wie du die Tabelle um weitere Spalten erweitern kannst (Formeln können dann auch nach unten ausgefüllt werden.

Lieben Gruß
Marion

OT Hochkommas
Grüezi Marion,

=WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");3;0));"")

die Hochkommatas kannst du weglassen in diesem Fall, ich lasse die immer wo es geht sowieso weg, denn ich vermeide wo es geht Namen mit Leerzeichen darin…

LGuK
Reinhard

Hallo Reinhard,

=WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");3;0));"")

die Hochkommatas kannst du weglassen in diesem Fall, ich lasse
die immer wo es geht sowieso weg, denn ich vermeide wo es geht
Namen mit Leerzeichen darin…

in diesem Fall kann man die Hochkommas nicht weglassen. Jedenfalls nicht, wenn auch das gewünschte Ergebnis angezeigt werden soll.

LG Marion

in diesem Fall kann man die Hochkommas nicht weglassen.
Jedenfalls nicht, wenn auch das gewünschte Ergebnis angezeigt
werden soll.

Hallöchen Marion,

fürs gewünschte Ergebnis nehme ich doch gleich diese Formel:

= 55

*grien*

Ich teile mit dir ja sehr gerne Alles aber in diesem Fall nicht deine Meinung:

Tabellenblatt: C:\Download\[April-b907852f79.xls]!Noten gesamt
 ? A ? B ? C ?
????????????????????????????????????????
3 ? Klausur ? WiSo 280907 ? ?
????????????????????????????????????????
4 ? Name ? mit Komma ? ohne Komma ?
????????????????????????????????????????
5 ? A ? 55 ? 55 ?
????????????????????????????????????????

Benutzte Formeln:
B5: =WENN(ISTZAHL(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT("’"&$B$3&"’!$A$8:blush:D$27");3;0));"")
C5: =WENN(ISTZAHL(SVERWEIS($A5;INDIREKT($B$3&"!$A$8:blush:D$27");2;0));(SVERWEIS($A5;INDIREKT($B$3&"!$A$8:blush:D$27");3;0));"")

LKuG
Reinhard, der die Formel sowieso zu lang findet :smile:

OT Test

Tabellenblatt: C:\Download\[April-b907852f79.xls]!Noten gesamt
 │ A │ B │ C │
──┼─────────┼─────────────┼────────────┤
3 │ Klausur │ WiSo 280907 │ │
──┼─────────┼─────────────┼────────────┤
4 │ Name │ mit Komma │ ohne Komma │
──┼─────────┼─────────────┼────────────┤
5 │ A │ 55 │ 55 │
──┴─────────┴─────────────┴────────────┘
Benutzte Formeln:
B5: C5: 

Festgelegte Namen:
WiSo: ='WiSo 280907'!$A$8:blush:D$27, unbenutzt in Selektion.

Zahlenformate der Zellen im gewählten Bereich:
A3:A5,B4:B5,C4:C5
haben das Zahlenformat: Standard
B3:C3
haben das Zahlenformat: T.M.JJJJ

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard