Wie richte ich SVERWEIS2 für LibreOffice 5.0 ein?

Servus zusammen.

Vor ein paar Jahren gab es in zwei OpenOffice Foren (Makro - OpenOffice.info und http://www.openoffice-forum.de/viewtopic.php?f=5&t=2411) mal eine Diskussion um ein Makro, das es für Excel gibt und dass einen “Benutzerdefinierten Befehl” “SVERWEIS2” bereitstellt. Ich bin Anwender und kenne mich mit der Makroprogrammierung überhaupt nicht aus. Ich habe also mit Hilfe verschiedener Anleitungen einfach das dort in den Foren gepostete Makro in LibreOffice 5 (Extras - Makros - Makros verwalten - LibreOffice Basic - Meine Makros - Standard - Modul1 - Bearbeiten) hineinkopiert und abgespeichert. Beim Versuch den Befehl nun auzuprobieren bekomme ich permanent Fehlermeldungen. Allerdings habe ich es mit dem Funktions-Assistenten versucht und nicht von Hand.

Hat jemand damit Erfahrungen oder einen Tipp, wo ich eine gute Anleitung für Laien finde?

P.S.: Habe die Frage nur hier und sonst nirgens gestellt :wink:
Dieses Thema war damals in den Foren leider viel umfassender als die Sachfrage.

Diese alten Threads mit ihren Troll Postings zu studieren, ist nicht wirklich erfrischend. Warum gibst du uns nicht einfach den Code, mit dem du Probleme hast? Bei den “permanenten Fehlermeldungen” wäre auch interessant, zu erfahren, wie sie lauten.

(Bitte das Problem immer konkret beschreiben, statt auf ein anderes Forum zu verweisen.)

“Für Excel” gibt es unglaublich viele “Makros” von höchst zweifelhaftem Wert. Vermutlich ermutigt der Verkäufer die Makroprogrammiererei, weil sie zum sogenannten “Vendor-Lock-In” (eigentlich ein Kundengefängnis), beiträgt.

Eines der genannten Forenthemen habe ich angesehen. Dort Fall geht es, so würde ein Datenbankkenner sagen, um die Darstellung einer 1:n Relation in kompakter Form. Die 1 betrifft dabei den Wert (ggf. Text), der zu suchen ist, und das n bezeichnet die Anzahl der Fundstücke, die dann, je mit einer Ergänzug verbunden, aufgelistet werden sollen.

Das schaut zwar ein bisschen nach SVERWEIS aus, aber diese Standardfunktion liefert bekanntlich nur die erste Fundstelle.

Rückt man das Verketten beliebig vieler Teilergebnisse in den Vordergrund, und beachtet man, dass wahrscheinlich nicht nur ein zugeordneter Wert je Fundstelle geliefert werden soll, sieht man klarer in Richtung Lösung: Die ganze Datensammlung als potentielles Ergebnis betrachten und verketten, und dabei diejenigen Zeilen ausschließen, die die Bedingung nicht erfüllen. Da können freilich alle ausgeschlossen sein.

Der Kern der Lösung ist also die fortgesetzte Verkettung der Fundobjekte, wohl unter Einfügung eines Trenners.

Dafür gibt es tatsächlich (und seltsamerweise) keine praktikable Lösung mit Standardfunktionen, und jetzt kommt eigene Programmierung ins Spiel. Der schöne Nebeneffekt ist dann, dass man eine zusätzliche Funktion hat, die auch bei vielen anderen Aufgaben, die gar nicht an SVERWEIS erinnern, eingesetzt werden kann. Wegen ganz anderer Aufgaben dieser Art habe ich einst eine solche Funktion geschrieben. Der Code ist:

Function concatenateColArrayDelimited(pArray(),pDelim) As String
Dim i As Long
Dim resText As String
Dim locText As String
rem Catch the exceptional case of a scalar passed to the first parameter.
If NOT IsArray(pArray) Then
    Dim HelpArray(1 To 1, 1 To 1)
    HelpArray(1,1) = pArray
    pArray = HelpArray
EndIf

resText = ""
For i = Lbound(pArray(),1) to Ubound(pArray(),1)
    locText = pArray(i,1) 
    If (resText <> "") And (locText <> "") Then 
        resText = resText & pDelim
    EndIf	
    resText = resText & locText
Next i

concatenateColArrayDelimited = resText
End Function rem concatenateColArrayDelimited

und wie die Funktion zur Lösung deines Problems eingesetzt werden kann, ist im angehängten Beispiel zu sehen. SVERWEIS tritt dabei natürlich nicht auf. Beachte bitte, dass die Lösungsformel als Array-Formel (also mit Ctrl+Shift+Enter) eingegeben werden muss.

ask61180ArbitraryConcatenate001.ods

1a-Antwort. DANKE! Dieses Makro löst mein Problem.

Sorry, f. d. späte Reaktion; hatte mit eine Mail-Benachrichtigung i. Falle einer Antwort gerechnet.
Und meine nächste Frage wird konkreter.

War auf “SVERWEIS2” nicht festgelegt, wusste aber von jemand,der unter Excel damit arbeitet…

Beispieldatei hilft mir sehr! Meine Calc-Tab. führt in einer Übersicht Feiertage, Ferien und Termine zusammen. Letztere haben z. T. mehrere Einträge, die ich von Hand zusammenführe.

Ab jetzt automatisch :slight_smile: