SVERWEIS über mehrere Reiter

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SVERWEIS über mehrere Reiter

Re: SVERWEIS über mehrere Reiter

von Lazzard » Mi, 05.10.2011 08:07

Moin Balu,

besten Dank für deine immer so ausführlichen Antworten !!

Leider wird das dann wirklich zu viel für meine Preisliste. Ich dachte halt, es würde einfacher und unkomplizierter gehen.
Dies scheint leider nicht so....*schnief*

Ich werde mal noch etwas hin und her überlegen, was da Sinn macht.

Eigentlich sah die Lösung zwischendurch ja echt gut aus, bis auf dass plötzlich 2 Rechenblätter vollkommen ausgelassen wurden.

Re: SVERWEIS über mehrere Reiter

von balu » Di, 04.10.2011 15:26

Hallo Lazzard,
Was meinst du mit Zahlenindex als Namen bei den Rechenblätter ?

Ich könnte die Rechenblätter benennen in:
1. Reb.f.Brother
2. Reb.f.Canon
usw

Reicht das ?
Der Zahlenindex so wie Du ihn jetzt als Beispiel aufgeführt hast, wäre an der falschen Stelle. Ich meinte das ehern so rum.
Reb.f.Brother.1
Reb.f.Canon.2

Aber das spielt nun auch keine Rolle mehr, da ich meine Idee nicht in die Tat umsetzen konnte. Und folgedessen musste ich auf eine Notlösung mit mehreren Hilfsspalten ausweichen. Diese gefällt mir wohl auch nicht so recht, aber sie funktioniert einigermaßen. Das Verfahren ist wie folgt.


Für 8 Produkt-Blätter, aber ohne CSV, gibt es im Blatt CSV jeweils eine Spalte mit einer SVERWEIS-Formel die die Art-Nr aus der Spalte A im jeweiligem Blatt sucht. Also Spalte 1 sucht in Blatt Nr.1 nach der Art-Nr, Spalte 2 im Blatt Nr.2 usw.
Und wenn die Art-Nr gefunden wurde, wird sie halt in der entsprechenden Spalte ausgegeben.
Das suchen und ausgeben in den 8 extra Spalten geschieht eigentlich nicht wesentlich anders, als wie ich es hier schon im Thread erklärt hatte. Nur das die nun eingesetzte Formel etwas umfangreicher geworden ist. Doch das erklär ich gleich noch etwas genauer.

Da durch die 8 extra Spalten der gesuchte Betrag nun aber in unterschiedlichen Spalten steht, muss er nun noch in die Preis-Spalte (H) übertragen werden. Das geht ganz einfach mittels.

Code: Alles auswählen

=MAX(I2:P2)
Ich habe nun noch ein sehr kleines Makro angewendet, welches nur alle vorhandenen Namen der einzelnen Tabellenblätter untereinander in einer extra Spalte (AA) auflistet. Die Datei kann aber auch ohne das Makro verwendet werden, nur musst Du dann die Namen in exakter schreibweise in der dafür vorgesehenen Spalte AA von Hand eintragen. Also in AA2 bis AA9, der Blassgrüne Bereich.

In den Spalten rechts daneben, AB und AD, wird nun eine Bereichsadresse mit dem Blattnamen erstellt, also beispielsweise so.

Code: Alles auswählen

'Reb.f.Brother'.B12:B1000 'Reb.f.Brother'.B12:G1000
Auf diese beiden Spalten greifen die Formeln in den 8 extra Spalten drauf zu. Eigentlich ist es ja nur eine Formel die nach rechts und nach unten gezogen (kopiert) werden kann. Und diese sieht so aus.

Code: Alles auswählen

=WENN(ISTFEHLER(ZÄHLENWENN(INDIREKT(INDIREKT("AB"&SPALTE(B$1)));$A2));"";WENN(ZÄHLENWENN(INDIREKT(INDIREKT("AB"&SPALTE(B$1)));$A2);SVERWEIS($A2;INDIREKT(INDIREKT("AD"&SPALTE(B$1)));6;0);""))
Ich weiß, durch die vielen INDIREKT sieht die Formel recht wüst aus. Aber sie bietet eine gewisse felexibilität, die das ganze fast wieder gut macht. Und das versuch ich jetzt mal zu erklären.

Code: Alles auswählen

INDIREKT(INDIREKT("AB"&SPALTE(B$1)))
Die Namen der einzelnen Tabellenbläter werden ja in der Spalte AA von AA2 bis AA9 eingetragten (egal ob von Hand oder per Makro). Und rechts daneben (in diesem Fall in AB) werden ja die Bereichsadressen zusammengestellt.
SPALTE(B$1) gibt nun den Wert 2 zurück, da ja Spalte B die 2te Spalte ist. Also gibt nun die erste INDIREKT die Zelladresse AB2 zurück. Da aber AB2 nicht die richtige Adresse ist, wird erst durch die 2te INDIREKT gesagt, dass die erste INDIREKT Indirekt auszuwerten ist. Und jetzt wird die richtige Adresse ausgegeben.

Code: Alles auswählen

'Reb.f.Brother'.B12:B1000
Und warum habe ich das mit der SPALTE(B$1) angewendet?
Nun, ganz einfach.
SPALTE dient in diesem Falle als Indexzähler (Spaltenzähler). Wenn also die Formel nach rechts gezogen wird, ändert sich der Spaltenbuchstabe innerhalb von SPALTE. Aus SPALTE(B$1) wird dann SPALTE(C$1) usw. etc. Und dadurch ändert sich wiederum dann die Zelladresse in der ersten INDIREKT. Aus AB2 wird AB3, AB4 etc.

Code: Alles auswählen

=WENN(ISTFEHLER(ZÄHLENWENN(INDIREKT(INDIREKT("AB"&SPALTE(B$1)));$A2))
Damit wird nur überprüft ob das Tabellenblatt vorhanden ist. Und wenn ja, dann gehts hiermit weiter.

Code: Alles auswählen

WENN(ZÄHLENWENN(INDIREKT(INDIREKT("AB"&SPALTE(B$1)));$A2)
Jetzt wird nachgeschaut ob das Suchkriterium (die Art-Nr) im dementsprechendem Blatt vorhanden ist. Und wenn es gefunden wurde, kommt zu guter letzt die SVERWEIS dran.

Code: Alles auswählen

SVERWEIS($A2;INDIREKT(INDIREKT("AD"&SPALTE(B$1)));6;0)
Leider hatte ich mein mir erdachtes Ziel nicht erreicht. Denn ich wollte das alles so hinbekommen, dass die eben erklärte Formel als Matrixformel in einer einzigen Spalte steht, aber dennoch alle Blätter abarbeitet. Kurz: Ich bin kläglich gescheitert! :oops:
Dennoch hoffe ich das Du mit dem jetzigem Ergebnis etwas anfangen kannst. :)

Mit einem etwas umfangreicherem Makro könntest Du bestimmt ohne meine Formel auskommen. Doch dafür bin ich noch nicht so der geeignete Ansprechpartner, und außerdem gehört das dann in das dementsprechene Unter-Forum.


Gruß
balu
Dateianhänge
SVERWEIS_mehrere_Blätter__2.ods
(29.76 KiB) 90-mal heruntergeladen

Re: SVERWEIS über mehrere Reiter

von Lazzard » Di, 04.10.2011 08:08

Was meinst du mit Zahlenindex als Namen bei den Rechenblätter ?

Ich könnte die Rechenblätter benennen in:
1. Reb.f.Brother
2. Reb.f.Canon
usw

Reicht das ?

Aktuell würde es mir schon reichen, wenn ich für jeden Reiter/Rechenblatt eine Formel hätte, die ich immer nutzen kann.
Dann muss ich halt bei einem neuen Canon Produkt, die Canon Formel nutzen usw.
Das würde mir schon reichen. Aber am liebsten so in der Formel, dass er das gesamte Rechenblatt durchsucht.

Re: SVERWEIS über mehrere Reiter

von balu » Fr, 30.09.2011 14:29

Hallo Lazzard,
Danke das du dir um meine Probleme so einen Kopf machst ! Wirklich vielen Dank !
Gerne :).
Das ist aber auch mal eine andere Herausforderung. Und wenn ich es geschafft haben sollte, dann hab ich auch wieder was dazu gelernt.

Das Haupt- und Grundproblem welches Du ja eigentlich hast, ist ein 3-D Datenbereich. 3-D ist gleich 3 Dimensional.

[k]Was zum Donnerwetter ist denn nun wieder ein 3-D Datenbereich?[/k]
Nun, das ist das verarbeiten von Daten nicht nur in einem Tabellenblatt (2-D), sondern auch noch über mehrere Tabellenblätter hinaus. Das nennt man dann einen 3 Dimensionalen Datenbereich, kurz 3-D. Und mir ist momentan nur eine Formel bekannt, die 3-D kann, und das ist =SUMME().

Simples Beispiel:
Du hast 3 Tabellenblätter mit den Namen; Tabelle1, Tabelle2 und Tabelle3.
In diesen hast Du nun jeweils in der Zelle A15 eine Zahl stehen. Und nun möchtest Du die Zahlen aus den drei Tabellenblättern addieren. Das kann man beispielsweise so machen.

Code: Alles auswählen

=Tabelle1.A15+Tabelle2.A15+Tabelle3.A15
Aber mit SUMME geht das viel einfacher.

Code: Alles auswählen

=SUMME(Tabelle1.A15:Tabelle3.A15)
Wie gesagt, das ist 3-D.

Einen SVERWEIS über mehrere Tabellenblätter hinaus zu konstruieren, ist wirklich nicht ganz so einfach. Einfacher würde er gehen, wenn die Tabellenblätter-Namen mit einem Zahlenindex versehen wären, wie im eben genannten Beispiel. Wenn diese Tabellenblätter-Namen aber nur aus reinem Text bestehen, so wie es bei dir der Fall ist, dann wird das ganze schon bedeutend schwerer. Aber mal schaun was sich da noch machen lässt, hab da noch ein paar ungetestete Ideen.


Gruß
balu

Re: SVERWEIS über mehrere Reiter

von Lazzard » Fr, 30.09.2011 13:55

@Balu
Danke das du dir um meine Probleme so einen Kopf machst ! Wirklich vielen Dank !

Sagen wir vielleicht mal so, kannst du mir helfen, eine Formel für jeden Reiter zu entwerfen ?
Bzw eigentlich müsste ich nur wissen, wie ich den gesamten Bereich als Matrix angebe.
Irgendwie hatte ich in deinen Formeln was gelesen, dass man das gesamte Rechenblatt als Matrix sieht.

Dann habe ich halt für insgesamt 8 Reiter, 8 unterschiedliche Formeln, die ich bei Neuprodukten anwende.
Das würde mir dann auch schon reichen.

Vielen vielen Dank nochmal !!

Re: SVERWEIS über mehrere Reiter

von balu » Fr, 30.09.2011 13:18

Hallo Lazzard,

so richtig nachvollziehbar, ohne eine aktualisierte Beispieldatei mit HP-Produkten anstatt mit Brother, ist das ganze für mich momentan überhaupt nicht.

Eins kann ich dir aber jetzt schon mal sagen. Ohne Makro wirst Du höchstwahrscheinlich nicht weiter kommen. Ich habe mir diesbezüglich auch schon versucht gedanken drum zu machen, aber so gut sind meine Makro Kenntnisse noch nicht.


Gruß
balu

Re: SVERWEIS über mehrere Reiter

von Lazzard » Do, 29.09.2011 15:08

Uih...Asche auf mein Haupt.

In meinem vorherigen Beitrag habe ich glaube deine Fragen beantwortet ;)

Nun zu deinen nächsten Fragen:
Wiegesagt, die Datenblätter heißen leider teilweise anders, als die Artikelhersteller dort drinnen.

Was als einziges in der CSV Tabelle und den anderen immer gleich ist, ist die Artikelnummer wie z.B. 100130

Die Meldung Suchkriterium existiert nicht! kommt aktuell bei allen HP Color Produkten in meiner Liste.
Die Artikelnummern sind alle richtig und tauchen ebenso in der CSV Liste auf.
Witziger weise funktioniert die HP Monocrome Liste, nur das zweite Rechenblatt mit den Color funzt nicht mehr.

Re: SVERWEIS über mehrere Reiter

von Lazzard » Do, 29.09.2011 14:39

Hallo Gert,

ich arbeite mit OpenOffice 3.3.0 unter Windows XP.
Die Preislisten werden von mir immer als xls abgespeichert, damit ein Kunde die besser öffnen kann.
Es gibt Kunden, die die Preisliste als xls bekommen möchten, normalerweise wird mein druckbarer Bereich als PDF exportiert.
Die Preisliste ist umfangreicher als meine Testdatei, da es noch einen nichtdruckbaren Bereich hinter den Preise gibt
wo Kalkulationen usw drinnen stehen, die dem Kunden natürlich nix angehen.
Im Normalfall wird aus allen druckbaren Bereichen eine PDF exportiert und per Mail versendet.
Der CSV Bereich soll für den Datenimport bei Shop-Betreibern vorgesehen sein.

Re: SVERWEIS über mehrere Reiter

von balu » Do, 29.09.2011 14:35

Hallo Leute,

@Lazzard
Warum beantwortest Du nicht meine letzten Fragen?
balu hat geschrieben: - Betriebssystem?
- welche OOo/LO Version?
- Muss die Datei unter Excel (welche Version) UND unter OOo/LO laufen?
- Warum hattest Du eine xls-Datei (Excel) angehängt, anstatt eine ods-Datei (Calc)?
Die hatte ich nicht aus Spaß an der Freud gestellt. Denn davon kann es abhängen wie es weiter geht, ob easy-einfach für Calc, oder kompliziert wegen Excel.

Dank deiner Formel, konnte ich die Fehler etwas eingrenzen.
Na das ist doch schon mal was wert.

Wenn ich es richtig verstanden habe, gleicht die Formel den Hersteller unter CSV Spalte B mit dem Namen des Rechenblattes ab oder ?
Korrekt.

Das Problem ist natürlich, dass z.B. das Rechenblatt Epson heißt, jedoch Minolta dort mit aufgelistet ist, da dies auch entfernt zusammengehört.
Somit kann darüber nicht abgeglichen werden.
Das stimmt, und macht die Sache natürlich gleich komplizierter.

Zusätzlich ist ein Rechenblatt vorhanden, welches gemischt ist, da es nur vereinzelte Hersteller sind, wo sich keine komplette Seite lohnt.
Nicht gut! Zumindest nicht bei der jetzt eingesetzten Formeltechnik.

Die Daten in der CSV können sich auch in Schreibweise und Angaben unterscheiden, nur die Artikelnummer ist immer gleich.
Nun hoffe ich, dass ich kein Denkproblem habe.
Das einzige was wirklich einmalig und individuell ist, ist die Artikel-Nummer (Art-Nr) in der Spalte A im Blatt CSV. Stimmt doch, oder!?

Suchkriterium existiert nicht! - Verstehe ich nicht, da es sich hierbei um ein gesamtes Rechenblatt handelt, welches nicht anders als die anderen ist. Jedenfalls aus meiner Sicht.
Diese Meldung kommt bei der letzten Formel von mir nur dann, wenn folgende Situation herrscht.
ZÄHLENWENN sucht die Art-Nr aus der Spalte A in dem anderen Tabellenblatt in der Spalte B. Und wenn diese Art-Nr nicht gefunden wird, dann gibt es keine Übereinstimmung und folglich die Meldung.



@Gert
Diesmal hast Du wirklich recht, mit deinem Hinweis bezüglich der richtigen schreibweise der Adressierung.
Ich gehe davon aus, das Balu hier von "OpenOffice_Calc" spricht.
Auch das stimmt! Und deshalb hatte ich extra wegen Excel nachgefragt.



Gruß
balu

Re: SVERWEIS über mehrere Reiter

von Gert Seler » Do, 29.09.2011 14:05

Hallo Lazzard,
Du hast doch die "Testdatei" im " xls-Format" hier eingestellt !
Ist Dir bekannt, das der "SVERWEIS" in MS_Excel so dargestellt wird =SVERWEIS(Tabelle1! A11
und in OOo_Calc =SVERWEIS(Tabelle1. A11.
Das sind so die kleinen Unterschiede zwischen den beiden.
Ich gehe davon aus, das Balu hier von "OpenOffice_Calc" spricht.

mfg
Gert

Re: SVERWEIS über mehrere Reiter

von Lazzard » Do, 29.09.2011 13:07

Hi Balu,

wieder kann ich nur besten Dank sagen, für deine Unterstützung.
Dank deiner Formel, konnte ich die Fehler etwas eingrenzen.

Wenn ich es richtig verstanden habe, gleicht die Formel den Hersteller unter CSV Spalte B mit dem Namen des Rechenblattes ab oder ?
Das Problem ist natürlich, dass z.B. das Rechenblatt Epson heißt, jedoch Minolta dort mit aufgelistet ist, da dies auch entfernt zusammengehört.
Somit kann darüber nicht abgeglichen werden.

Als ich nämlich anstatt Minolta, in der CSV Epson eingetragen habe, zog er sich sofort den Preis.
Zusätzlich ist ein Rechenblatt vorhanden, welches gemischt ist, da es nur vereinzelte Hersteller sind, wo sich keine komplette Seite lohnt.
Somit passt dies auch nicht. Die Daten in der CSV können sich auch in Schreibweise und Angaben unterscheiden, nur die Artikelnummer ist immer gleich.

Dank deiner Formel habe ich nun alle Fehlermeldungen gesehen ;)
Blatt existiert nicht! - Daran habe ich das mit dem Namen des Rechenblattes festgestellt.
Suchkriterium existiert nicht! - Verstehe ich nicht, da es sich hierbei um ein gesamtes Rechenblatt handelt, welches nicht anders als die anderen ist. Jedenfalls aus meiner Sicht.

Re: SVERWEIS über mehrere Reiter

von balu » Do, 29.09.2011 11:39

Hallo Lazzard,
Vielen Dank für deine neue Formel und die ausführliche Erklärung.
Gern geschehn.

Leider liefert er für 3 Tabellenblätter kein Ergebnis. Wo vorher #NV stand, ist nun ein leeres Feld.
Und nun musst Du dich fragen, liegt das am Namen des Tabellenblattes oder an dem nicht vorhanden sein des Suchkriterium? Das kannst Du aber selber versuchen herauszubekommen.
Mit der noch eingesetzten Formel bekommst Du ja nicht die Info ob das Blatt, oder das Suchkriterium nicht da ist, da ja in beiden Fällen eine leere Zelle angezeigt wird. Du musst also nur die Formel etwas ändern, damit Du nun schlauer wirst. Beispielsweise so.

Code: Alles auswählen

=WENN(ISTFEHLER(INDIREKT("'Reb.f."&B2&"'.A1"));"Blatt existiert nicht!";WENN(ZÄHLENWENN(INDIREKT("'Reb.f."&B2&"'.B12:B1000");A2);SVERWEIS(A2;INDIREKT("'Reb.f."&B2&"'.B12:G1000");6;0);"Suchkriterium existiert nicht!"))
Wenn Blatt existiert nicht ausgegeben wird, dann stimmt etwas mit dem Blattnamen nicht.
Und wenn Suchkriterium existiert nicht ausgegeben wird, dann liegt der Fehler bei dem Suchkriterium.

Bei Blattfehler, liegt vielleicht ein schreibfehler vor. Das könnte z.B. daher kommen das in der Zelle Bx (B2 bis B????) vor oder hinter dem Namen ein Leerzeichen steht. Wenn vor dem Namen, dann würde die Adressierung in etwa so aussehen.

Code: Alles auswählen

='Reb.f. Brother'.A1
Wenn hinter dem Namen, dann in etwa so.

Code: Alles auswählen

='Reb.f.Brother '.A1
Und in beiden Fällen würde die Formel nicht das Blatt finden. Da es falsch zusammengestellt wurde.
Es kann aber auch sein, dass das Blatt selber falsch geschrieben ist. Und damit meine ich den Namen unten im Tabellenregister.


Wenn Suchkriteriumfehler, dann kann es schon etwas schwerer werden den Fehler herauszufinden. Es gibt da mindestens 2 Fehlerquellen.

1.
Das Suchkriterium aus der Spalte A welches Du in den einzelnen Tabellenblättern dort in der Spalte B suchst, ist dort kein Wert sondern Text. Und Text erkennst Du daran, dass ein Hochkomma ( ' ) vorangestellt ist. Oder aber die Zelle ist als Text formatiert. Oder aber abwechselnd beides.

2.
Das Suchkriterium existiert wirklich nicht! Weil es
a)
einfach irgendwie falsch geschrieben ist,
b)
oder weil es wirklich nicht in den einzelnen Tabellenblättern existiert.


Und sollte trotzdem nichts angezeigt werden, also leere Zelle ist zu sehen, dann stimmt vielleicht etwas mit der Spalte G in den einzelnen Tabellenblättern nicht. Vielleicht steht dort einfach nichts drin.

Und nun noch ein paar extrem wichtige Fragen!
- Betriebssystem?
- welche OOo/LO Version?
- Muss die Datei unter Excel (welche Version) UND unter OOo/LO laufen?
- Warum hattest Du eine xls-Datei (Excel) angehängt, anstatt eine ods-Datei (Calc)?


Gruß
balu

Re: SVERWEIS über mehrere Reiter

von Lazzard » Do, 29.09.2011 08:20

@Balu

Vielen Dank für deine neue Formel und die ausführliche Erklärung.
Ich habe deine Formel sofort eingesetzt und ausprobiert.

Leider liefert er für 3 Tabellenblätter kein Ergebnis. Wo vorher #NV stand, ist nun ein leeres Feld.
Es betrifft Produkte aus 3 Tabellenblätter. Ich kann jedoch keinen Unterschied zwischen den Tabellenblätter sehen.
Diese 3 Tabellenblätter lässt er komplett aus.

Irgendwie bin ich jetzt verwirrt !?!?!

Re: SVERWEIS über mehrere Reiter

von lorbass » Do, 29.09.2011 01:08

@paljass,
paljass hat geschrieben:Mal sehen, ob lorbass noch mehr als ein "Ja!" auf deine Frage zu melden hat. So wie ich ihn kenne, lautet die Antwort "Ja!". :)
Nööö…
Lazzard hat geschrieben:Kann man mit dem SVERWEIS nicht realisieren, dass er mehrere Matrixen gibt [das Verb »gibt« habe ich gedanklich durch »verwendet« ersetzt; künsterische Freiheit ;)] bzw mehrere Tabellenblätter durchsucht werden ?
Ich bleibe erst mal bei meiner ursprünglichen Antwort: Ja, man kann mit dem SVERWEIS nicht realisieren, dass er – wer auch immer »er« sei – mehrere Matrixen gleichzeitig verwendet bzw. mehrere Tabellenblätter durchsucht werden.

Die Anforderung nach gleichzeitiger Verwendung mehrerer (2-dimensionaler) Matrizen in einem SVERWEIS-Aufruf entnehme ich der Fragestellung im ersten Post, insbesondere der zweiten Frage:
Lazzard hat geschrieben:Gibt es vielleicht eine Möglichkeit, dass ich im SVERWEIS bestimmen kann, dass er auf mehreren Reitern/Tabellen sucht ?
Also sozusagen mehrere Matrix Bereiche angebe ?
Knackpunkt ist also die Frage, ob die sukzessive Verwendung mehrerer 2-dimensionale Matrizen in ein und demselben SVERWEIS-Aufruf gefordert ist oder die gleichzeitige Verwendung mehrerer 2-dimensionalen Matrizen (also einer 3-dimensionalen).

Ich habe habe mich für die Gleichzeitigkeit entschieden und meine Antwort kurz, aber eindeutig formuliert. Die alternative Interpretation erscheint mir allerdings durchaus möglich, und wenn Lazzard damit zufrieden ist, ist ja alles in Butter.
paljass hat geschrieben:allerdings ist m.E. das Problem klar beschrieben
Das stimmt offensichtlich nicht.

Gruß
lorbass

Re: SVERWEIS über mehrere Reiter

von balu » Do, 29.09.2011 00:58

Hallo
Bei einigen Produkten zeigt er #NV an.
Und das sagt uns, dass das Suchkriterium NichtVorhanden (NV) ist.

Gibt es irgendwelche Kriterien, warum er die Werte dort nicht übernimmt ?
Als Grundregel gilt: Überprüfe erst ob das Suchkriterium überhaupt vorhanden ist!


So, und nun zu der Formel die wohl auch bei dir funktionieren müsste, mir aber persönlich nicht so wirklich gefällt.

Code: Alles auswählen

=WENN(ISTFEHLER(INDIREKT("'Reb.f."&B2&"'.A1"));"";WENN(ZÄHLENWENN(INDIREKT("'Reb.f."&B2&"'.B12:B1000");A2);SVERWEIS(A2;INDIREKT("'Reb.f."&B2&"'.B12:G1000");6;0);""))
Sie ist nun um einiges größer geworden, aber dafür führt sie zusätzliche Überprüfungen durch, damit keine Fehlerwerte wie #NV, oder ähnliches angezeigt wird.

Code: Alles auswählen

=WENN(ISTFEHLER(INDIREKT("'Reb.f."&B2&"'.A1"));""
Wenn die Adressierung des Tabellenblatts, die ja durch INDIREKT konstruiert wird, nicht vorhanden ist, dann wird nichts gemacht.
Die Zelle A1 ist ohne Bedeutung, genau so gut könnte da auch AC65000 stehen. Aber um zu überprüfen ob eine Adressierung auch korrekt geschrieben ist, muss sie halt vollständig sein. Und eine vollständige Blattübergreifende Adressierung sieht nun mal halt z.B. so aus.

Code: Alles auswählen

=Tabelle.A1
Falls jetzt irgendjemand meint, dass diese zusätzliche Überprüfung überflüssig ist, der sollte mal folgendes in der Beispieldatei von Lazzard machen.
- Im Blatt CSV in B2 einfach Epson eingeben.
- Und nun in I2 einfach die Formel von paljass eingeben.

Code: Alles auswählen

=SVERWEIS(A2;INDIREKT("$'Reb.f."&B2&"'.$B$12:$G$1000");6;0)
Ergebnis?
JA! Es werden Zahlen angezeigt.
Aber ist das auch wirklich korrekt?
Andersrum gefragt. Darf dort überhaupt in diesem Falle eine Zahl angezeigt werden?
Antwort.
N E I N !
Und warum nicht?
Ganz einfach. Weil folgende Adressierung (Zellbereich) ungültig ist!

Code: Alles auswählen

='Reb.f.Epson'.B12:G1000
(mal ohne störende Dollarzeichen)
Es gibt kein Tabellenblatt mit dem Namen: Reb.f.Epson
Aber warum Calc dennoch eine Zahl anzeigt, ist mir ein Rätsel.
Ich habe jetzt bewusst Zahl gesagt, da ich nicht weiß woher Calc den Wert holt. Es ist mir ein Rätsel wo der Wert herkommt, genauer gesagt, aus welchem Blatt kommt der Wert?

Und nun gibt mal in I2 folgende Formel ein.

Code: Alles auswählen

=INDIREKT("'Reb.f."&B2&"'.A1")
Das Ergebnis ist doch ziemlich eindeutig. Es wird ein Fehlerwert ausgegeben.
Err: 502 (Ungültiges Argument)
Da ja aber B3 wohl einen vorhandenen existierenden Namen beinhaltet, zieht einfach mal die Formel in I2 nach I3 runter.
Ergebnis in I3 müsste dann jetzt wohl eine Null (0) sein. Vorausgesetzt, dass Nullwerte anzeigen in den Optionen nicht ausgeschaltet ist.

Und damit dürfte jetzt wohl doch so ziemlich eindeutig sein, dass die zusätzliche Blattüberprüfung nicht überflüssig ist. Oder!?


Weiter gehts mit dem nächstem Teil "meiner" Formel.

Code: Alles auswählen

WENN(ZÄHLENWENN(INDIREKT("'Reb.f."&B2&"'.B12:B1000");A2)
Wenn das vorhin überprüfte Tabellenblatt vorhanden ist, dann wird nun mit diesem Teil überprüft ob überhaupt das Suchkriterium vorhanden ist.

Code: Alles auswählen

SVERWEIS(A2;INDIREKT("'Reb.f."&B2&"'.B12:G1000");6;0);""))
Und wenn das vorhanden ist, dann tritt die SVERWEIS in Aktion. Sollte aber das Suchkriterium nicht vorhanden sein, dann wird halt nichts gemacht

Testumgebung:
WinXP
OOo 3.2.1

Noch irgendwelche Fragen :wink:


Gruß
balu

Nach oben