[GELÖST] VERWEIS() mit DDE() auf Externe Daten auf dem Server

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

[GELÖST] VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Hallo,

ich habe ein sehr ungewöhnliches Verhalten. Ich sitze jetzt seit 4 Stunden dran und habe alles durchsucht was ich ich finden konnte. Vielleicht könnt ihr mir ja mal wieder den alles entscheidenden Tipp geben ;)

Ich möchte gerne per VERWEIS() in einer Externen Adresslisten Tabelle die Spalte C nach einer Adressliste der Form (2404-) durchsuchen.
Als Ergebnis soll dann der jeweilige Wert des Ergebnisvektors der Spalte E geliefert werden.

Das klappt auch alles wunderbar nur macht es zicken sobald ich das ganze versuche mit einer Tabelle zu machen die auf unserem Server liegt.

Komischerweise funktioniert die normale Referenzierung der DDE() oder file total gut und einzelne Werte kann ich mir geben lassen. Auch kann ich ganze Bereiche per DDE mir holen. Einzig und allein in Kombination mit dem VERWEIS() Befehl erhalte ich immer #NV zurück.

Ich habe mal 2 kleine Tabellen erstellt um das Problem klarer zu illustrieren. Die habe ich angehängt.

Ihr müsst zum überprüfen natürlich die Pfäde anpassen.

Ansonsten bin ich für jeden Tipp dankbar. Ich habe echt alle Methoden ausprobiert mit anklicken in der anderen Tabelle oder schreiben oder DDE() etc etc etc. Ich kriegs gerade nicht hin.

So sieht der Befehl aus der mich eigentlich zum Glück bringen sollte ;)

VERWEIS(C3;DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.C4:C6");DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.E4:E6"))

Vielen Dank für die Hilfe. Liebe Grüße

unic0rned


OOo 3.2
MAC OS 10.5 ;)
Dateianhänge
Zieltabelle.ods
(9.67 KiB) 107-mal heruntergeladen
Quelltabelle.ods
(7.67 KiB) 102-mal heruntergeladen
Zuletzt geändert von unic0rned am Mi, 26.07.2017 11:09, insgesamt 1-mal geändert.
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Hallo HeritzP,

danke schonmal für den Tipp.

Da hast du Recht. Bei der DDE() Verknüpfung konvertiert er das ganze dann als Zahl und auch nur eine Einzige.

Hast du eine Lösung für mein Problem?

Nochmal das Problem:

Ich würde gerne in einer externen Adresslisten Tabelle die Spalte C durchsuchen nach einer Zahl der Form "1234-"

Der Bindestrich am Ende ist dabei sehr wichtig.

Anschließend würde ich gerne aus der gefundenen Zeile ein Ergbnis der Spalte T zurückliefern.

Das ganze soll ruhig über die ganze Tabelle ausgeführt werden.


Vielen Dank für eure Hilfe.
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Ich habe gelesen, dass VERWEIS() eine sortierte Tabelle benötigt.

Könnte dies mein Problem sein? Also das der Suchvektor komplett durcheinander bei mir ist.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

Hast du eine Lösung für mein Problem?
verwende SVERWEIS() statt VERWEIS().


Gruß
Stephan
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Hallo,

ja du hast völlig Recht. So funktioniert es. Ich wusste nicht, dass man SVERWEIS auch auf die 3. Spalte anwenden kann. Dachte die Funktion nimmt immer Spalte A. Aber so funktioniert es einwandfrei. Selbst wenn ich das WERT() weglasse.

Nun habe ich einen perfekt funktionierenden SVERWEIS() für alle unsere Calc Formulare. Das ist schonmal wirklich toll. Da sitze ich seit 8 Monaten dran.

Das Sahnehäubchen wäre jetzt, wenn das ganze auch für unser Briefformular funktioniert.

Ich habe es schon hinbekommen mit einer OLE Tabelle aber das finde ich nicht so schön. (Oder kann die OLE Tabelle auf normale Writertabellen zugreifen oder auf Variablen?)

Ich möchte gerne den User an einer Stelle die Adresslistennummer eintragen lassen und dann den SVERWEIS Befehl damit ausführen lassen. Am liebsten nicht in der OLE Tabelle. Weil es dort so unschön ist da reinzuklicken.

Gibt es da einen einfachen Weg oder muss ich da ein Macro schreiben?

Vielen Dank!!!!!
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

Gast hat geschrieben: Mo, 24.07.2017 11:09 Servus,

dann würde das funktionieren.
=SVERWEIS(WERT(C3);DDE("soffice";"/home/linuxmint/Dokumente/Quelltabelle.ods";"Tabelle1.C4:T6");18;0)
Die Werte sind in Spalte T.

Gast
ich verstehe nicht wo diese Formel jetzt herkommt.

Analog zu der genannten Formel:

VERWEIS(C3;DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.C4:C6");DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.E4:E6"))

hieße die SVERWEIS()-Formel jedenfalls:

=SVERWEIS(C3;DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.C4:E6");3)


Gruß
Stephan
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Die Formel von Ihm kommt aus meinem geschriebenen Text ;)

Da habe ich meine ECHTE Tabelle beschrieben.

Dort möchte ich in Spalte T den Ergebnisvektor haben und in Spalte C den Suchvektor.

Die Dateibezüge habe ich selber angepasst.

Ich erhalte mit dem direkten file:/// Bezug bessere Ergebnisse als mit dem DDE(). Gibt es da Unterschiede welches ich lieber benutzen sollte?

Jedenfalls funktioniert das jetzt so.

Wie sieht es mit Writer aus? Da ist ja immer alles anders :D
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Tatsächlich ist es vor allem auch wichtig, den letzten Parameter nicht zu vergessen!

Da muss am Ende noch eine 0 hinter deinen Ausdruck Stephan, sonst geht er davon aus, die Tabelle ist sortiert. Das ist bei meiner echten nicht der Fall. Also fürs Archiv wenn jemand nochmal das Problem hat.

=SVERWEIS(C3;DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.C4:E6");3;0)


Ich benutze jetzt folgenden Befehl:

=SVERWEIS("2404-";'file:///Users/steffi/Desktop/Quelltabelle.ods'#$Tabelle1.C4:E6;3;0)


Der liefert mir konstant das richtige Ergebnis.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

Da muss am Ende noch eine 0 hinter deinen Ausdruck Stephan
ich hatte meine Formel nur mit Deiner Beispieldatei getestet und die war zufällig sortiert.
Ich benutze jetzt folgenden Befehl:

=SVERWEIS("2404-";'file:///Users/steffi/Desktop/Quelltabelle.ods'#$Tabelle1.C4:E6;3;0)
Und WOZU? Mit einer file-Verknüpfung geht es auch mir VERWEIS(), das ist sogar in Deiner Beispieldatei drin. Ich denke wir reden die ganze Zeit darüber es, warum auch immer, mit DDEE() lösen zu wollen?


Gruß
Stephan
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

VERWEIS() hat mir falsche Ergebnisse geliefert bei meiner großen Tabelle.

Weil sie NICHT sortiert ist. Dort gibt es keine Option für nicht sortiert.

Deswegen müssen wir SVERWEIS() benutzen.

Leider ist meine Beispieltabelle nicht gut geeignet weil die Tabelle leider zufällig sortiert ist. Dummer Fehler von mir.

Mit einer unsortierten geht es besser mit SVERWEIS() und dazu ist der file Verweis viel konstanter für mich. DDE hat zu häufig Macken.

Danke für all die tollen Ratschläge.

Hast du eine einfache Lösung für Writer Stephan?

Mein Ansatz wäre jetzt ein Makro gewesen oder so.

Es geht darum den Adressbereich eines Briefformulars mit Inhalten aus der Adressliste zu füllen.

(Datenbanken etc habe ich alles schon durchgekaut das geht leider alles nicht weil die Tabellen zu groß sind.)

Also möchte ich SVERWEIS() innerhalb von Writer verwenden.

Der Nutzer trägt irgendwo die Adresslistenzahl ein und den Rest macht der Computer.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

VERWEIS() hat mir falsche Ergebnisse geliefert bei meiner großen Tabelle.

Weil sie NICHT sortiert ist. Dort gibt es keine Option für nicht sortiert.

Deswegen müssen wir SVERWEIS() benutzen.

Leider ist meine Beispieltabelle nicht gut geeignet weil die Tabelle leider zufällig sortiert ist. Dummer Fehler von mir.
Nicht DEin Beispiel ist ungünstig sondern Du denkst verquer. WENN Du SVWEIS() wegen der Sortierung (und nicht wegen des #NV, was ja auch bei sortierten Daten+DDE kommt) verwenden musstest wusstest Du das doch vorher und es bestünde garkein Grund zur Begeisteung weil ich erst später überhaupt SVERWEIS() nannte (aus anderen Gründen, nämlich wegen des DDE)
DDE hat zu häufig Macken.
Ich keine keine dieser 'Macken' und muss leider sagen ich finde es ungünstig solche Dinge vorzuschieben statt einfach zu sagen das Du die file-Verknüpfung benutzen willst, wogegen aus meiner Sicht überhaupt nichts spricht.
Datenbanken etc habe ich alles schon durchgekaut das geht leider alles nicht weil die Tabellen zu groß sind.
Auch ein mir unklarer Punkt, denn eigentlich ist es genau umgekehrt, nämlich eher verträgt eine Datenbanklösung mehr Daten als eine Calc-Lösung.
Etwas konkreter sehe ich aber für Beides keine nennenswerte Grenze, sondern erwarte Probleme höchstens oberhalb einiger zehntausend Datensätze.
Hast du eine einfache Lösung für Writer Stephan?
WEnn die DAten in einer Calc-Datei sind kannst Du die Ergebniszelle (die wo die SVERWEIS()-Formel drinsdteht doch per DDE-FEldbefehl in die Writer-Datei (bzw. auch gleich in die Dokumentvorlage) verlinken (Einfügen-FEldbefehl-Andere-Variablen-DDE-Feld).


Gruß
Stephan
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Hallo Stephan,

danke für deine ganzen tollen Erläuterungen.

Ja da hast du natürlich Recht, dass es keinen Sinn macht andere Gründe vorzuschieben.

Ich stecke einfach nicht so tief in der Materie und das sind meine Vermutungeng.

Ich verwende einfach den file Bezug weil er gerade gut passt.

Die Idee mit dem DDE Link finde ich gut.

Allerdings ist mir eins noch nicht klar. Und zwar möchte ich ja gerne den User innerhalb der Writer Datei die Adresslistennummer eingeben lassen. Wie übergebe ich dann diese Eingabe an die Calc Datei wo der SVERWEIS ausgeführt wird um ihn dann wieder zurück zu writer zu holen?
Ein schnelle Test mit 2 DDE Befehlen hin und her hat leider nicht zum gewünschten Ergebniss geführt. Könnte auch an meiner fehlerhaften Implementierung liegen. Ist das der Weg den du gehen würdest?

Liebe Grüße
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

Und zwar möchte ich ja gerne den User innerhalb der Writer Datei die Adresslistennummer eingeben lassen. Wie übergebe ich dann diese Eingabe an die Calc Datei wo der SVERWEIS ausgeführt wird um ihn dann wieder zurück zu writer zu holen?
Ich weiß dafür leider keine Lösung, außer per Makro. Mit Makro könnte man dann aber auch gleich den Wert direkt aus Calc auslesen:
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig175

und in Writer an eine vorbereitete Textmarke eintragen:
http://www.dannenhoefer.de/faqstarbasic ... dText.html


Gruß
Stephan
unic0rned
**
Beiträge: 36
Registriert: Fr, 02.12.2016 09:06

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von unic0rned »

Danke für die beiden Tipps.

Einer der beiden Wege wird auf jeden Fall für mich funktionieren.

Dazu eine kleine Frage die mich schon lange beschäftigt. Wenn ich einen DDE Link in Writer erstelle und diesen in Calc Verknüpfe funktioniert das gut. Solange ich Änderungen nur in der Mitte des Wortes vornehme bleibt das alles erhalten. Sobald ich aber zum Beispiel das erste oder letzte Zeichen lösche und danach eins davor füge, fällt dieses raus aus der DDE Verknüpfung. Gibt es da einen Weg dies zu verhindern?


@Stephan:

Ich habe nun rausgefunden, warum ich der Meinung war DDE würde manchmal macken haben ;)

Und zwar liegt es NATÜRLICH am Anwender der es nicht verstanden hat. Und zwar liegt in meinem sehr speziellen Fall ja noch ein "-" Bindestrich am Ende der Zahl vor. Dies ist also ein TEXT String und keine Zahl. DDE interpretiert das aber default mäßig als Zahl und macht aus "2404-" -> "-2404" und das findet er dann natürlich nicht mit SVERWEIS.

Es gibt aber bei DDE noch einen MODE Parameter. Den kann man am Ende setzen und der erlaubt es dann meinem DDE zu sagen dass als TEXT zu nehmen.
Dann lautet mein Befehl:

=SVERWEIS(C3;DDE("soffice";"/Users/steffi/Desktop/Quelltabelle.ods";"Tabelle1.C4:E6";2);3;0)

Die 2 hinter dem DDE Befehl ist entscheidend.

Code: Alles auswählen

mode is an optional parameter specifying how numbers are returned. Non-numeric text is returned unchanged.
0 or omitted: Data is converted to number if possible, using the default cell style
1: Data is converted to number if possible, in US English (en_US) format (for example with “.” as the decimal separator)
2: Data is always retrieved as text (not converted to number).

Nun klappt der DDE Befehl auch für mich einwandfrei :)

Ansonsten wäre es noch toll eine Lösung für die Verknüpfungsfrage zu haben. Dann wäre das glaube ich auch per DDE lösbar. Sonst schreibe ich mir ein Macro wo man auf einen Knopf klickt und dann halt dort die Nummer eingibt und das Macro durchläuft. Das geht auch.

Liebe Grüße
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VERWEIS() mit DDE() auf Externe Daten auf dem Server

Beitrag von Stephan »

Gibt es da einen Weg dies zu verhindern?
Nein. Zumindest kenne ich Keinen.


Gruß
Stephan
Antworten