Seite 1 von 1
verkuerzte abfrage ueber spalten
Verfasst: Mi, 06.08.2008 22:43
von martini
bestimmt bin ich nicht der erste, der das hier fragt, aber die suchfunktion hat mir nicht weitergeholfen. ich suche nach einer moeglichkeit, bestimmte argumente nicht ausschreiben zu muessen. zum beispiel statt "or(a1=1;a2=1:a3=1)" sowas wie or(a1:a3=1). das selbe muesste vor allem auch mit "concatenate()" funktionieren. ohnehin wuerde es mich interessieren, wieviele argumente diese funktionen überhaupt verarbeiten koennen, oder ob man sie ineinander verschachteln muss. in einigen anderen foren hab ich gelesen, diese funktionen waeren auf 30 argumente beschraenkt, liessen sich aber bis zu einer gewissen tiefe verschachteln. im grunde durchsuch ich in einem skript sehr oft spalten mit einer "indirect(address(find(concatenate)))"-kombination (sicher sehr unelegant) vor der oft noch eine lange if-abfrage steht.
fuer (sicher leicht zu gebende) hilfe waere ich sehr dankbar.
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 00:27
von balu
Hallo martini,
in der Regel haben hier ca. 99,99% aller User (nicht belegte Schätzung meinerseits

) wohl ehern eine deutschsprachige Version von OOo auf ihren Rechner. Und da ist es dann schon ein wenig schwieriger, deine englischen Bezeichnungen zu übersetzen (soll kein vorwurf sein).
Also hier die deutschen Übersetzungen:
FIND = FINDEN
CONCATENATE = VERKETTEN
ADDRESS = ADRESSE
INDIRECT = INDIREKT
OR = ODER
IF = WENN
Theoretisch kann man bei VERKETTEN, und bei ODER ca. 30*30*30*..... Argumente eingeben. Also z.B. bei VERKETTEN pro Argument eine neue Verkettung, und dann wieder, und wieder........Aber ab wann OOo anfängt zu streiken, weiss ich auch nicht. Und außerdem, wo liegt da der Sinn darin!?
martini hat geschrieben:
ich suche nach einer moeglichkeit, bestimmte argumente nicht ausschreiben zu muessen
[...]
das selbe muesste vor allem auch mit "concatenate()" funktionieren.
Ich hab auch schon so manches mal versucht einige Formeln zu "komprimieren"

, was aber leider nicht immer geht.

Es kommt immer auf den einzelnen Fall drauf an. Manchmal muss man nicht komprimieren, sondern einfach eine andere Formel einsetzen. Und/Oder seinen Tabellenaufbau umstrukturieren. Denn ein Tabellenkalkulationsprogramm ist keine BASIC-Programmiersprache, sondern von seinen Ur-Wurzeln her eine rein Mathematische Anwendung. Und das sind zwei verschiedene Paar Schuhe.
Das ist meine Meinung.
VERKETTEN zu "komprimieren", versteh ich nicht

!? Warum, wozu, wieso!?
martini hat geschrieben:
im grunde durchsuch ich in einem skript sehr oft spalten mit einer "indirect(address(find(concatenate)))"-kombination (sicher sehr unelegant) vor der oft noch eine lange if-abfrage steht.
fuer (sicher leicht zu gebende) hilfe waere ich sehr dankbar.

Meine Glaskugel kann mir dabei auch nicht weiter helfen. Ohne genauere Frage und weitere Infos läuft da nix. Wie wär's denn mit einer Beispieldatei?
Aber ein Tipp habe ich da noch für dich.
Groß- und Kleinschreibung erhöht die
Lesbarkeit ungemein.

balu
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 09:27
von martini
Moin,
erstmal vielen Dank für die vielen Antworten. Offenbar gehoer ich dann wohl zu den 0,01% mit englischer Calc-Version. Ich gebe zu, dass mein Problem wohl nicht genau genug erklaert war. Sorry. Ich vergleiche zwei Listen von Strings, von denen die erste als Referenz dient. Mein Skript soll herausfinden, ob die Strings aus der zweiten Liste überhaupt in der Referenzliste vorkommen, und an welcher Position sie sich befinden. Dann wird eine dritte Liste als Ergebnis ausgegeben, in der die Strings aus der zweiten Liste, die auch in der Referenz vorkommen, in die entsprechende Referenzspalte verschoben werden oder festgestellt wird, dass es in der zweiten Liste keine Entsprechung gibt. Ich gebe auch zu, dass Calc sicherlich nicht unbedingt besonders gut fuer diese Aufgabe geeignet ist, aber da das prinzipiell funktioniert, hab ich keine Lust Base/Access zu benutzen. Bei uns im Büro ist ohnehin nur Excel vorhanden, aber abgesehen von einigen Scherereien funktioniert die transformierte Syntax von Calc zu Excel eigentlich ganz gut. Ich wuerde auch gerne eine Beispieldatei hier anhaengen, aber ich weiß nicht, wie das geht. Vllt kann mir da einer helfen.
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 11:58
von balu
Hallo Leute,
ja, ja! Irgendwann kapiere ich das auch noch mit den Matrixformeln, besonders die kleinen einfachen
@martini
Ich denk mir mal, dass wir das schon irgendwie hinbekommen. Auch wenn wir dabei auf das Dateiaustauschverfahren achten müssen.
Gruß
balu
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 20:21
von martini
hi,
Balus Tipps sind offenbar sehr hilfreich. NIcht nur, dass ich jetzt auch manchmal groß schreibe, ich hab auch eine Datei anhaengen koennen.
Hoffentlich verdeutlich diese, zum einen, was ich zu machen versuche, und zum anderen, wie unuebersichtlich das "skript" ist. Das ist allerdings nur eine "kurz-vorm-Einschlafen-und-leicht-angetrunken-Skizze", um zu sehen, ob das ueberhaupt funktioniert. Inzwischen hab ich im Buero schon eine weitaus ausgefeiltere Version, die auf vielen Sheets noch deutlich mehr kann. Allerdings hab ich leider vergessen, sie hochzuladen und kann sie deshalb nicht hier online stellen. Das Problem bleibt aber ohnehin das selbe. Das Skript funktioniert zwar, aber prinzipiell sollte es auch wesentlich mehr als 30 Eintraege verarbeiten koennen, ohne ewige verschachtelungen und endloses "FindAndReplace-copy-paste-Generve".
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 22:17
von AhQ
Halo Martini,
ich glaube, Dein guter Freund sollte Vergleich() heißen, auch wenn mir noch nicht ganz klar ist, was die Tabelle jemals bewirken soll. Z.B. tuts meiner Meinung nach statt diesem Spektakel in E1 =WENN(ISTZAHL(FINDEN($B$1;VERKETTEN($A$1;$A$2;$A$3;$A$4;$A$5;$A$6;$A$7;$A$8;$A$9;$A$10;$A$11;$A$12;$A$13;$A$14;$A$15;$A$16;$A$17;$A$18;$A$19;$A$20;$A$21;$A$22;$A$23;$A$24;$A$25;$A$26;$A$27;$A$28;$A$29;$A$30)));(FINDEN($B$1;VERKETTEN($A$1;$A$2;$A$3;$A$4;$A$5;$A$6;$A$7;$A$8;$A$9;$A$10;$A$11;$A$12;$A$13;$A$14;$A$15;$A$16;$A$17;$A$18;$A$19;$A$20;$A$21;$A$22;$A$23;$A$24;$A$25;$A$26;$A$27;$A$28;$A$29;$A$30))-1)/11+1;0) auch folgendes:
=VERGLEICH(B1;A1:A30;0)
weil: Du prüfst, wenn ich das richtig seh, als erstes mal, ob da überhaupt B1 in A1:A30 vorkommt. Dafür machst Du eine lange Zeichenkette aus A1:A30 und läßt dann Finden() mal arbeiten. Kommt eine Zahl raus (Istzahl()), dann suchst Du die Stelle in der Wahnsinnszeichenkette, teilst durch die Länge des einzelene abschnitts (11) und weißt, in welcher Zeile die Übereinstimmung liegt. Das macht Vergleich() auch, schaut aber halt ein bißchen weniger spektakulär aus.
Dementsprechend würde ich auch den Wenn-Spaß in Spalte D anders aufbauen, nämlich am Anfang mit =WENN(A1=B1;A1;WENN(ISTNV(VERGLEICH(1;E1:E30;0));"gibts nicht";INDIREKT(...
Da sparst Du Dir nochmal diesen Verketten-Irrsinn. Genauso dann hinten beim zweiten Verketten() in der Formel. Vielleicht könnte man ja auch statt Indirekt(Adresse(Vergleich(...);2) einfach schreiben Indirekt("B"&Vergleich(...)). da bin ich mir aber nicht ganz sicher, weil mir eigentlich nicht ganz klar ist, was das insgesamt bringen soll.
Wenn es Dir um den Vergleich zweier Listen geht, dann schreib doch einfach =VERGLEICH(B1;$A$1:$A$30;0) und das ziehst Du runter. Bei Übereinstimmungen bekommst Du automatisch die Zeile mit der Übereinstimmung, die Du dann mit Indirekt() verwurschten kannst, ein #NV muß halt mit Wenn(istnv() abgefangen werden. Aber wie gesagt, so ganz hab ich den Sinn noch nicht verstanden.
Viele Grüße
AhQ
Re: verkuerzte abfrage ueber spalten
Verfasst: Do, 07.08.2008 23:21
von balu
Hallo martini.
ich seh, das AhQ geantwortet hat, aber auch er hat da so seine Verständnisprobleme mit deiner Aufgabenstellung. Na da bin ich mal gespannt, ob ich mit meiner Lösung richtig liege. Aber auch ich habe VERGLEICH() eingesetzt, ganz so wie AhQ.
martini hat geschrieben:
Balus Tipps sind offenbar sehr hilfreich.
Danke für die Blumen
Schön das du deinen Schreibstill geändert hast.
martini hat geschrieben:
Dann wird eine dritte Liste als Ergebnis ausgegeben, in der die Strings aus der zweiten Liste, die auch in der Referenz vorkommen, in die entsprechende Referenzspalte verschoben werden ...
Das hört sich nach einer Lückenlose ausgabe der Ergebnisse an, also ohne Leerzellen und nur Treffer in beiden Listen. Und dazu habe ich heute keinen Bock mehr. Da bin ich jetzt mal so frech, und sage, das dies andere machen dürfen. Denn sie wollen ja auch was zu tun haben
martini hat geschrieben:
Mein Skript soll herausfinden, ob die Strings aus der zweiten Liste überhaupt in der Referenzliste vorkommen, und an welcher Position sie sich befinden.
Das habe ich jetzt mal auf meine ganz spezielle Art und Weise für dich erledigt. Schau dir meine Beispieldatei an, und Du siehst wie ich das meine

Im Sheet1 bekommst Du im
Klartext deine Frage beantwortet, und im Sheet2 in einer
Tabellarischen Art. Ich hoffe nur, das ich dich nicht Falsch verstanden habe.
So, und nu geh ich in's Bett.

balu
Re: verkuerzte abfrage ueber spalten
Verfasst: Sa, 09.08.2008 18:28
von martini
Vielen Dank Balu, vielen Dank AhQ,
Die Nummer mit "vergleichen" ist genau, das was ich wollte. Gut zu wissen wohin man gehen kann, falls man mal nicht weiter weiss.