Brauche Hilfe beim Übersetzten eines Filter-Befehls von Excel zu Libre

Erstmal ein freundliches Hallo in die Runde.

Folgende Sachlage:
Ein Schulsozialarbeiter ohne tiefere Syntaxkenntnisse aber mit genug Grips um als Copy-Paste-Werker klar zu kommen, möchte den Wunsch seines Teams erfüllen und eine kleine Netzwerkpartnerdatenbank erstellen.
Er selbst benutzt seit Jahren Libre, aber sein Arbeitgeber und die Hälfte seiner Kollegen arbeiten mit MS Office.
Also muss eine Hybridlösung her.
Dank toller Youtubevideos hat er es bereits geschafft ein Suchformular als eigene Datei mit einer Tabelle in einer anderen Datei (die Datenbank) zu verknüpfen. Alles in Excel.
In einer dritten, diesmal Liebre Calc Datei, hat er nun ein finales großes Problem:
Er bekommt den Filterbefehl, den er in Excel benutzt um die Datenbank zu durchsuchen, nicht in Libre übersetzt.
Eigentlich wollte er eh alles in Libre, mit der eigenen Datenbanklösung basteln, aber sein schulinterner Arbeitsrechner hat von der Administration ein Java-Verbot und ohne lässt sich anscheinend die Libre Datenbank nicht betreiben…

Also die konkrete Fragen:
Kann mir bitte jemand zeigen, warum Libre Calc immer den Fehler 507 ausspuckt, wenn der gleich folgende Befehl eingegeben wird und wie bringe ich den Filter zum laufen?

Ich habe den Exel- und den Librebefehl hier für die Übersichtlichkeit formatiert. Ich weiß, dass die ganzen Zeilenumbrüche und Leerzeichen im Programm wieder raus müssen.
Ach und mit “Er” meine ich natürlich mich :stuck_out_tongue:

Excel (funktioniert):
=FILTER(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[#Daten];
(
(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 1]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 2]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 3]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 4]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 5]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 6]=$E$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Leistung 7]=$E$21)
)
*
(
(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 1]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 2]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 3]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 4]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 5]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 6]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 7]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 8]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 9]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 10]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 11]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 12]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 13]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 14]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 15]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 16]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 17]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 18]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 19]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 20]=$G$21)
+(PrototypNetzwerkpartnerDatenbank.xlsx!Tabelle[Fachbereich 21]=$G$21)
)
;“Keine Ergebnisse”)

Libre (Fehlercode 507):
=FILTER(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[#daten];
(
(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 1]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 2]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 3]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 4]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 5]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 6]=$E$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[leistung 7]=$E$21)
)
*
(
(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 1]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 2]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 3]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 4]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 5]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 6]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 7]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 8]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 9]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 10]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 11]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 12]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 13]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 14]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 15]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 16]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 17]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 18]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 19]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 20]=$G$21)
+(prototypnetzwerkpartnerdatenbank.xlsx.tabelle[fachbereich 21]=$G$21)
)
;“Keine Ergebnisse”)

Ich bin kein Excel-Spezialist. Aber das

bringt mich natürlich dazu, eine kleine Anmerkung zu machen.
Nutzt Du die interne Firebird-Variante, so kommst Du um Java herum. Die Assistenten funktionieren zwar nicht wie gewohnt und den ReportBuilder musst Du sausen lassen, aber die Datenbank Firebird braucht keine Java-Unterstützung, um in Base zu laufen. Du musst nur zur Erstellung der Datenbank einmal den experimentellen Modus einschalten. Dann erscheint Firebird zur Auswahl. Ist die Datenbank erstellt, so kannst Du den experimentellen Modus wieder einschalten.

Und noch ein Tipp: Lade eine Datei mit dem Problem hoch. Die Datei braucht ja keine empfindlichen Daten zu heben, nur den Befehl so eingebaut, dass jede(r) das Problem nachvollziehen kann. Ich z.B. weiß überhaut nicht, wo denn jetzt diese Formel stehen soll. Den Befehl FILTER finde ich in Calc auch nicht.

Ich muss Libreoffice portable benutzen.
Danke schon mal für den Hinweis. Wenn ich die Tage mal Zeit habe, werde ich mich mit deinem Vorschlag zum Java umgehen mal genauer auseinandersetzten.

Nun zum Eigentlichen:
PrototypNetzwerkpartnerExcelSuche.xlsx (18.5 KB)
PrototypNetzwerkpartnerLibreSuche.ods (61.6 KB)

Es geht um das Feld B25 im “Suchen”-Reiter in den beiden -“Suche”-Dokumenten.
An dieser Stelle sollen die gefilterten Einträge aus der Tabelle im -“Datenbank”-Dokument aufgelistet werden.
Bei der Excelvariante geht es. (Die Datenbankdatei muss allerdings geöffnet sein. Da stinkt Excel mal wieder gegen Libre ab :stuck_out_tongue: )
Ich habe versucht den Exel-Befehl abzuwandeln. Habe da auch mal mit ChatGPT drüber Konferiert und daraufhin schon ein paar Änderungen vorgenommen. ! wird zu . und auch mal ein Komma statt eines Semikolons am Ende getestet. Aber der Fehler bleibt.

Wie mache ich nun weiter?

P.S.: wie ich gerade erfahren habe, darf ich nur zwei Dokumente Verlinken. die Datenbankdatei liefere ich gleich in einem neuen Post nach.

PrototypNetzwerkpartnerDatenbank.xlsx (34.5 KB)

Du musst Java nicht installieren. Einfach das JRE-Verzeichnis von einem anderen Windows-PC irgendwohin kopieren (z.B. unter “Eigene Dateien”) und die LibreOffice-Einstellungen auf dieses Verzeichnis verweisen.
Ganz ohne Java kannst Du fast jede andere Datenbank verwenden wie z.B. MySQL. Du verbindest ein Base-Dokument zu Deinem MySQL-Server und kannst dann sinnvolle Abfragen und Eingabeformulare aber keine Berichte erstellen weil Berichte widerum von einer Java-Komponente erstellt werden. Ich benutze meistens Calc-Tabellen und Pivot-Tabellen als Berichte. Calc bietet genug Formatierungs- Layout- und Druckoptionen für sinnvolle Berichtserstellung.

Was Du da mit Excel/Calc versuchst ist einigermaßen irre, selbst wenn man bedenkt, dass fast alle Excel-Nutzer in dem Irrsinn gefangen sind, dass Excel ein Datenbankprogramm sein muss. Es ist das kleine aber perfekte Beispiel warum IT in der öffentlichen Verwaltung niemals auf die Beine kommen kann.

Hallo @gottill,

deine Filter-Funktion innerhalb Excel kann deutlich vereinfacht werden. Mit der MMULT() Funktion erhältst du einen einspaltingen Array den du als Kriterium verwenden kannst.

Suche Formel in Excel (innerhalb von “PrototypNetzwerkpartnerDatenbank.XLSX”) =

=FILTER(Tabelle;(MMULT(--(E21=Tabelle[[Leistung 1]:[Leistung 7]]);SEQUENZ(SPALTEN(Tabelle[[Leistung 1]:[Leistung 7]]))))*(MMULT(--(G21=Tabelle[[Fachbereich 1]:[Fachbereich 21]]);SEQUENZ(SPALTEN(Tabelle[[Fachbereich 1]:[Fachbereich 21]]))));"Keine Ergebnisse")

Und für Libre Office Calc kannst du folgende Formel verwenden. FILTER() gibt es hier noch nicht. Hier kann man mit der AGGREGAT() und VERSCHIEBUNG()-Funktion aber einen Workarround verwenden.

=WENNFEHLER(VERSCHIEBUNG($Datenbank.$A$2;AGGREGAT(15;6;ZEILE($1:$109)/((MMULT($E$21=$Datenbank.$N$3:$Datenbank.$T$111;ZEILE($1:$7)))*(MMULT($G$21=$Datenbank.$U$3:$Datenbank.$AO$111;ZEILE($1:$21)))>0);ZEILE($1:$10));0;1;41);"")
Die Formel ist mit STRG+Hochstellen+Enter als Matrixformel abzuschließen! Zur Zeit werden bis zu 10 Ergebnisse angezeigt. Falls das nicht ausreicht, dann den letzten Teil 1:10 auf 1:x abändern.

Viel Erfolg mit deinem Projekt.

PrototypNetzwerkpartnerLibreSuche.ods (65,5 KB)
PrototypNetzwerkpartnerDatenbank.xlsx (40,6 KB)

1 Like

Vielen herzlichen Dank.
Und nochmal extra Danke fürs direkte einfügen!

Wenn ich in deinem Befehl nun auf die Datenbank in dem dritten Dokument namens “PrototypNetzwerkpartnerDatenbank.xlsx” (im selben Verzeichnis) anstatt der dateiinternen Datenbank (die nur aus versehen da noch drin war) verweisen möchte, wie muss ich das dann adressieren? Ich habe versucht einfach den Dateinamen vor “$Datenbank” zu setzten. Ging aber nicht.

LG
ein Till

Hallo Till,

bei Calc ist das leider nicht ganz so einfach wie bei Excel. Hier brauchst du für eine Referenz zu einem externen Dokument immer den ganzen Pfad auch wenn die beiden Dokumente im selben Verzeichnis liegen. Der Pfad sieht immer wie folgt aus:

='file:///Path & File Name'#$'SheetName'.CellReferenc

Die gute Nachricht ist, Calc sucht erst mal im aktuellen Ordner ob die Datei vorhanden ist und aktualisiert alle Links zu der Datei die ich vorher mit meinen Einstellungen vorgenommen habe.

Die Formel in Suche.B25 habe ich angepasst und die Verweise mit dem ganzen Pfad zur Datei erzeugt.

=WENNFEHLER(VERSCHIEBUNG('file:///C:/Users/MyUsername/Ask LibreOffice/PrototypNetzwerkpartnerDatenbank.xlsx'#$Datenbank.A2;AGGREGAT(15;6;ZEILE($1:$109)/((MMULT($E$21='file:///C:/Users/MyUsername/Ask LibreOffice/PrototypNetzwerkpartnerDatenbank.xlsx'#$Datenbank.N3:T111;ZEILE($1:$7)))*(MMULT($G$21='file:///C:/Users/MyUsername/Ask LibreOffice/PrototypNetzwerkpartnerDatenbank.xlsx'#$Datenbank.U3:AO111;ZEILE($1:$21)))>0);ZEILE($1:$10));0;1;41);"")

Somit sollte der Zugriff zur externen Datenbank-Datei bei allen Rechnern funktionieren, solange sie im gleichen Verzeichnis liegt wie die Suche Datei. Wenn die Verbindung zur Datenbankdatei mal abreißt, kann man das unter Menü - Bearbeiten - Verknüpfung zur externen Dateien… wieder reparieren.

Die Datenbank in der Suche Datei habe ich gelöscht. Außerdem noch etwas aufgeräumt und den SVERWEIS() angepasst und repariert.

Die Datei lege ich wieder bei.

PrototypNetzwerkpartnerLibreSuche.ods (35,4 KB)

Boa, 1000 Dank an euch beide (Und im Zuge dessen auch an das Forum!).
Meine KollegInnen werden Augen machen :smiley:

Ja. Wenn man das mal ein paar Wochen benutzt hat und die Bezüge nicht mehr stimmen, dann werden die Augen machen.

Ich verstehe gerade die Intention hinter deiner Aussage nicht. Möchtest du einen Verbesserungsvorschlag anbieten aber möchtest danach gefragt werden? Oder gibt es irgendwelche hintergründigen Verstimmungen zwischen dir und den beiden, die mir geholfen haben, von denen ich nix weiß?

Wenn ich den emotionalen/informellen Teil deiner Aussage weglasse, verstehe ich dich richtig, dass du sagst, dass es ein Problem mit Bezügen innerhalb der Daten oder zwischen den Dateien, wegen der absoluten Pfadangaben gibt? Wobei die ja dann jetzt schon und nicht erst in ein paar Wochen auftreten sollten.
Oder meinst du die Tatsache, dass sich mit jeder Erweiterung der Datenbank der Bezug zwischen ID-Nummer und Eintrag ändert? Wenn es das ist, dann stellt das kein Problem dar und wurde billigend in Kauf genommen…

Kannst du das bitte einfach nochmal genauer erklären?

Nee, ich bins wirklich leid. Macht halt. Mir wäre nur lieber, ihr würdet diesen Quatsch weiterhin mit Excel veranstalten.
Nur soviel: Kein IT-Profi würde das jemals so machen.

1 Like

Welchen Teil meinst du? Also fall du überhaupt Lust hast, das zu erklären.
Wie gesagt, bin ich ja auch kein IT-Profi, sondern Sozialarbeiter. Wenn ich die Verantwortlichen IP-Profis zum Beispiel dran erinnere, dass sie seit einem halben Jahr den Drucker in meinem Büro ins Netzwerk integrieren wollten, wird mir gesagt, dass “sich das bald jemand anschaut.” Und wenn ich darum bitte, dass ich irgend eine Software, die ich mit entsprechenden Rechten in 5 Min selber installieren könnte, auf meinem PC haben darf, vergeht gut und gerne mal ein Jahr.
Ich selber bastel seit über 30 Jahren mit und an PCs rum und hätte selber ein IT-Profi werden können. Zum Glück, kann ich mir dadurch wenigstens selber einigermaßen helfen, wenn es bei den IT-Profis mal wieder länger dauert…

Lange Rede, kurzer Sinn: Ich weiß, ihr macht einen guten und wichtigen Job und seid oft mit Arbeit zugebombt und von sich immer wiederholenden Fragen und Problemen irgendwann genervt. Ich bin daher für jede Info, die meine Abhängigkeit von IT-Profis mindert, dankbar.

Es ist eine Schande, dass Du Dich mit so einem Scheiß befassen musst, um ein strukturiertes Kontakte-Verzeichnis zu erstellen. Sowas grundlegendes müsste in allen Behörden seit Jahren “einfach so” ohne Ringhefter verfügbar sein.

Tjo… Dem habe ich nichts hinzuzufügen.
Vielen Dank nochmal an euch alle.