Seite 1 von 2
Funktion INDEX und VERGLEICH
Verfasst: Mi, 22.02.2006 12:57
von ghoppe
Hallo,
leider komme ich mit den Funktionen INDEX und VERGLEICH nicht zurecht.
Ich möchte einen bestimmten Text, ein kleines e,in einem vorgegeben Zellenbereich H31:H53 suchen und das genau.
Dafür ware ja die Funktion VERGLEICH geeignet.
Irgendwas mach ich falsch den es kommt immer #NV
dabei heraus statt der Zelle z.B. H35.
Diese Zelle möchte ich dann an die Funktion INDEX übergeben und dann einen Text aus derselben Zeile aber der Spalte J ausgeben.
Bei der Funktion Index hab ich wohl auch noch ein Problem.
Kann mir bitte jemand helfen.
Verfasst: Mi, 22.02.2006 13:23
von Lenu
Du müsstest Deine Formeln und Zellbezüge genau angeben, damit man Dir raten könnte. Aber vielleicht
hilft Dir das hier
Verfasst: Mi, 22.02.2006 13:37
von Karolus
Hallo
Wenn ich dich richtig verstehe dann ist die Funktion SVERWEIS das was du brauchst :
=SVERWEIS("e";H31:J53;2;0)
liefert den Text in der 2. Spalte des Bereichs H31:J53 rechts des Suchkriteriums "e"
Gruß Karo
Verfasst: Mi, 22.02.2006 13:41
von ghoppe
So Sieht mein Tabellen Ausschnitt aus mit dem gearbeitet wird.
Durch die eingabe einer PLZ wird die Spalte H gefüllt oder auf #NV gesetzt.
Die Formel die im MS-Excel verwendet wird:
=INDEX(J31:J53;VERGLEICH("*e*";H31:H53;0))
In dem Feld wo die Formel steht sollte jetzt der Text Pfalz stehen und nicht #NV
Z/S H I J31 #NV 7 Koblenz
32 #NV 22 Thüringen
33 #NV 17 Schleswig Holstein
34 #NV 16 Sachsen-Anhalt
35 #NV 8 Mecklenburg-Vorpommern
36 #NV 3 Brandenburg
37 #NV 1 Bayern
38 #NV 20 Saarland
39 #NV 14 Rheinhessen
40 #NV 6 Hessen
41 #NV 11 Nordrhein
42 #NV 23 Westphalen-Lippe
43 #NV 4 Bremen
44 #NV 9 Niedersachsen
45 #NV 5 Hamburg
46 #NV 2 Berlin
47 #NV 15 Sachsen
48 #NV 10 Nordbaden
49 #NV 18 Südbaden
50 #NV 12 Nordwürttemberg
51 ePfalz 13 Pfalz
52 #NV 21 Trier
53 #NV 19 Südwürttemberg
Verfasst: Mi, 22.02.2006 13:51
von Lenu
Warum hast Du das "e" denn in Sternchen eingefasst?
Erstens macht das ganze ja wohl nur Sinn mit exakten Werten und zweitens müsstest Du reguläre Ausdrücke in OO anders schreiben.
Verfasst: Mi, 22.02.2006 14:02
von ghoppe
OO ist für mich absolutes Neuland.
Die Formel kommt so aus Microsoft Excel.
Verfasst: Mi, 22.02.2006 14:05
von Lenu
ghoppe hat geschrieben:OO ist für mich absolutes Neuland.
Die Formel kommt so aus Microsoft Excel.
Und weiter? Ist das Problem jetzt gelöst?
Verfasst: Mi, 22.02.2006 14:10
von ghoppe
Leider nicht
In der Spalte H wird nach einem Teilstring e gesucht und bei treffer der Inhalte von Spalte J ausgegeben.
Verfasst: Mi, 22.02.2006 14:16
von Lenu
ghoppe hat geschrieben:Leider nicht
In der Spalte H wird nach einem Teilstring e gesucht und bei treffer der Inhalte von Spalte J ausgegeben.
Wenn ich Dich recht verstehe, suchst Du nicht nach einem genauen Wert (das hattest Du im ersten Beitrag geschrieben) sondern nach irgendwas, das ein e enthält. Dazu brauchst Du einen regulären Ausdruck und in OO müsstest Du das dann so schreiben:
".*e.*"
Mehr zu regulären Ausdrücken findest Du im Hilfetext.
Aber Achtung: damit wird Dir einfach die Position des ersten gefundenen Wertes geliefert. Kannst Du sicher sien, dass das der richtige Wert ist?
Verfasst: Mi, 22.02.2006 14:23
von ghoppe
Lenu hat geschrieben:ghoppe hat geschrieben:Leider nicht
In der Spalte H wird nach einem Teilstring e gesucht und bei treffer der Inhalte von Spalte J ausgegeben.
Wenn ich Dich recht verstehe, suchst Du nicht nach einem genauen Wert (das hattest Du im ersten Beitrag geschrieben) sondern nach irgendwas, das ein e enthält. Dazu brauchst Du einen regulären Ausdruck und in OO müsstest Du das dann so schreiben:
".*e.*"
Mehr zu regulären Ausdrücken findest Du im Hilfetext.
Aber Achtung: damit wird Dir einfach die Position des ersten gefundenen Wertes geliefert. Kannst Du sicher sien, dass das der richtige Wert ist?
Hab es jetzt so versucht:
=INDEX(J31:J53;VERGLEICH(".*e.*";H31:H53;0))
Ergebnis #NV

Verfasst: Mi, 22.02.2006 14:24
von Karolus
Hallo
das Sternchen vor dem e war zuviel und hinter dem e brauchts noch den Punkt.
Mit folgender Formel komme ich zum gewünschten Ergebniss "Pfalz"
=INDEX(J31:J53;VERGLEICH("e.*";H31:H53;0))
Evtl. musst du unter ->Extras ->optionen 'scalc' -berechnen-
die Verwendung von 'regulären Ausdrücken' in Formeln erlauben.
Verfasst: Mi, 22.02.2006 14:33
von ghoppe
Karolus hat geschrieben:Hallo
das Sternchen vor dem e war zuviel und hinter dem e brauchts noch den Punkt.
Mit folgender Formel komme ich zum gewünschten Ergebniss "Pfalz"
=INDEX(J31:J53;VERGLEICH("e.*";H31:H53;0))
Evtl. musst du unter ->Extras ->optionen 'scalc' -berechnen-
die Verwendung von 'regulären Ausdrücken' in Formeln erlauben.
Der * passt schon.
Die Einstellungen waren es.
Mit dieser Formel:
=INDEX(J31:J53;VERGLEICH(".*e.*";H31:H53;0))
der Einstellung FUNKTS
Bingo, das waren die entscheidenden Hinweise.
Vielen Dank für die Hilfe.

Verfasst: Mi, 22.02.2006 14:38
von Karolus
Hallo
Lenu schrieb
Aber Achtung: damit wird Dir einfach die Position des ersten gefundenen Wertes geliefert. Kannst Du sicher sien, dass das der richtige Wert ist?
Dem kann ich mich anschliessen, das kann also nur dann funktionieren wenn "e.*" nur einmal im Suchbereich auftaucht.
Gruß
Karo
Verfasst: Mi, 22.02.2006 14:52
von ghoppe
Karolus hat geschrieben:Hallo
Lenu schrieb
Aber Achtung: damit wird Dir einfach die Position des ersten gefundenen Wertes geliefert. Kannst Du sicher sien, dass das der richtige Wert ist?
Dem kann ich mich anschliessen, das kann also nur dann funktionieren wenn "e.*" nur einmal im Suchbereich auftaucht.
Gruß
Karo
Danke für den Hinweis.
Für jedes Bundesland ist ein Tabellenblatt angelegt worden.
Über die Eingabe einer PLZ, kombiniert mit einer Suchrutine auf den Bundesland-Tabellenblättern wird ein entsprechender Wert an die entsprechende Zelle in der Spalte H in dem Suchtabellblatt übergeben.
Bei richtiger Pflege der Tabellenblätter kann es nur einen Wert geben.
Die Pflege wird an anderer Stelle durchgeführt.
Noch mal Danke für die tolle Hilfe.
CU ghoppe
Verfasst: Mi, 22.02.2006 15:03
von Karolus
Hallo
ghoppe schrieb:
Bei richtiger Pflege der Tabellenblätter kann es nur einen Wert geben.[
Dann isses ja gut
ps. dann funktioniert auch:
=SVERWEIS("*e.*";H31:J53;3;0)
Gruß
Karo