Calc: Zeilen-Duplikate (doppelte Datensätze) finden und entfernen

Habe ich noch nie gemacht. Es gibt aber “Bausätze”, die eine Datenbank mit Webformularen verbinden, ganz ähnlich wie LibreOffice Base eine Datenbank mit Formularen auf Office-Dokumenten verbinden kann.

1 Like

Und noch was: Ich habe mir gestern nochmal die Funktionalität von Calc’s Datenbankbereichen angeschaut. Calc kann Filterkriterien für Datenbankbereiche speichern, was rudimentär dem Speichern einer Datenbankabfrage ähnelt. Es ist wieder mal alles nur eine Sache der Konfiguration. Wenn du es hinbekommst, dass der definierte Datenbankbereich sich immer auf das korrekte Rechteck bezieht, dann kannst Du mit Daten->“Bereich aktualisieren” jederzeit eine Liste von eindeutigen Datensätzen extrahieren.
Bildschirmfoto von 2024-09-29 13-47-53

Hier ist der auch der Zielbereich als Datenbankbereich “Filter_Result” definiert. Anfangs genügt eine Zelle $Sheet3.$A$1. Der Bezug erweitert sich automatisch.

1 Like

Schau mal in die Richtung PHP+MySQL bzw. MariaDB. Die Datenbank läuft dann auf dem eigenen oder gemieteten Webserver und wird mit html/php-Formularen bedient.
.
Gibt es von simpel bis beliebig kompliziert. Je nachdem, welche Anforderungen man hat (Datenschutz ?) sollte man schon etwas von sql-injections und anderen Problemen verstehen oder jemanden dafür bezahlen.
.
Insgesamt ist es wohl ein Markt auf dem oft Standardlösungen von Programmierern für Kunden angepasst werden

Darf ich zu diesem aus dem Ausgangsposting bitte nochmal nachhaken?

Ist es richtig, dass innerhalb von Calc keinen einfacheren Weg gibt? Also irgendwas ohne Hilfsspalte?

Ich rede also nicht vom Entfernen der Duplikate, das geht ja hinreichend flott mit dem Standardfilter.

Danke.

Nein, aber:

  1. =VERBINDEN("|";1;A2:C2)
  2. D2 rechts unten doppelklick
1 Like

@karolus

Danke, das ist auf jeden Fall eleganter!

Ungelöst ist noch die Dokumentation von Zusammengehörigkeit.

Beispiel:

Zeilen 3, 73 und 208 seien identisch miteiander.

Zeilen 7, 306, 811 ebenso.

Wenn jetzt bei dem ersten Vorkommnis einer mehrfach auftretenden Zeile, hier wäre das die Zeile 3, eine Information in einer Hilfsspalte ganz rechts der Tabelle in Zeile 3 stünde wie: “73, 208”

Rechts der Zeile 7 stünde: 306, 811

Dann wäre die Aufgabe gelöst. Aber das ist nur eine Idee.

Vielleicht gibt es viel bessere : )

Diese Information ist IMHO völlig irrelevant, aber wenns sein muss:
E2 ⇒

=VERBINDEN("; " ; 1 ; WENN( D3:D$? = D2 ; ZEILE( D3:D$? ) ; "" ))

setze die »letzte Zeilennummer plus 1« anstelle der ? ein.

edit: ps, das ist eine Matrix-formel, die musst du mit Strg+shift+enter bestätigen oder per [x]matrix-option im Formelassistenten, und mit gedrückter Strgtaste doppelklicken.

1 Like

@karolus
Vielen Dank. In das Thema Matrixformel muss ich mich noch einlesen.

Meinst Du hier einen “Doppelklick auf das kleine gefüllte Quadrat in der rechten unteren Ecke der Zelle”?

Ich kenne die Funktionsweise zum Kopieren einer Formel in mehrere Zellen mit Hilfe dieses Quadrats als “Anfasser” und der Maus.
https://help.libreoffice.org/latest/de/text/scalc/guide/formula_copy.html

Doppelklick auf das Quadrat hat hier keine Wirkung.

Unabhängig davon:
Angenommen wir haben eine Formel in D1=lorem(…). Wir haben 100 Zeilen in der Tabelle.

Gibt es einen Bedienweg, der die Formel bis D100 kopiert, damit man sich das manuelle Ziehen der Formel mit der Maus bis unten sparen kann?

@Villeroy
Danke für den Hinweis zu “Bereich aktualisieren”, das ist praktisch.

Mir persönlich wäre zwar ein prägnanter Befehl wie in Google Sheets lieber, der den Ist-Zustand ersetzt, aber ich will das nicht als die einzig wahre Lösung ansehen.

Ein wenig hatte und habe ich manchmal in der LO-Community den Eindruck, dass es nur eine geringe Offenheit gibt, über Wünschenswertes/ noch nicht Existierendes/ alternative Ideen zu diskutieren. Sowas kann ja neben einer der Nennung eines Lösungswegs mit den aktuellen Möglichkeiten auch Freude machen.

Du kannst die Benutzerschnittstelle komplett auf deine Bedürfnisse zuschneiden, mit eigenen Menüs, Menübefehlen und Kontextmenüs, eigenen Symbolleisten und Schaltflächen und eigene Tastaturkombinationen sind auch möglich. Bis auf letzteres kann man das sogar individuell für Vorlagen und Dokumente einrichten. Wieder einmal geht es bei der Wunscherfüllung um Konfiguration.
Das scheint bei sehr vielen Anwendern ein großes Problem zu sein, wenn ich hier sehe, wie wenig Wissen über Vorlagen vorhanden ist. Ohne Vorlagen kann man mit keiner Office-Suite auch nur halbwegs produktiv arbeiten, und LibreOffice ist in diesem Bereich besonders stark. Nur merkt es halt keiner weil jeder wie wild in seinen Dokumenten herumklickt.

Ach ja, den Makro-Code zum Aktualisieren eines Datenbankbereichs habe ich hier auch schon gepostet.

Zu Bedeutung von Vorlagen stimme ich Dir voll zu und teile auch Dein Bedauern/Deine Verwunderung darüber, warum so wenige Officenutzer sich dazu Wissen aneignen.
Ich habe vor vielen Jahren (2004) mal eine kleine Page gebaut, die für Writer den Fokus auf Vorlagen gelegt hat.
https://borumat.de/libreoffice-writer-tipps
Ist lange her und vieles davon sicher veraltet.

Mit meiner Präferenz für einen eigenen Befehl “Duplikate entfernen” wie bei Google Sheets haben jedoch Vorlagen nix zu tun.

Die Methode “Makros” richtet sich eine kleine Nutzergruppe einer Office-Suite: diejenigen mit Programmierkenntnissen. Sowas spielt für normale Nutzer keine Rolle - außer sie finden ein Makro, was ihre Aufgabe (auf besonders schöne Weise) löst.

Vielen Dank für die Seite über Writer und das Arbeiten mit Vorlagen.

1 Like

Bei 3 Spalten, deren Zeilen zu vergleichen sind, mögen meine Beispiele als Vorlage dienen, um mit nur 1 Hilf-Spalte, respektive 2 Hilf-Spalten, ein und mehrere Duplikate anzuzeigen. Die logisch 2-fach verknüpfte VERGLEiCH-Funktion ist anspruchsvoll, daher eine aufwändigere Kompilation in 2 TabellenBlättern, um schrittweise eine Lösung zu nähern. Mit der Spalte [A:A] markiere ich prinzipiell den DatenBereich, hierbei hilfsreich, da die Funktion =VERGLEiCH() intern diesen Bereich genauso nummeriert und nicht den Namensfeld-Bereich [y12:y40].

  • TABa: schrittweises Herangehen mit vielen Hilf-Spalten;
  • TABb: versteckter Algorithmus, der einzig ein Duplikat farbig darstellt mittels Hilf-Spalte [E:E], respektive [F:F].
    00_LO-CALC_VERGLEiCH()_Serdna-v0002_013344.ods (33.9 KB)
1 Like

@koyotak
Danke für Beispieltabellen!
TABa: Das werde ich mir nochmal genauer in Ruhe ansehen. Das ist in der Tat komplex.

Für den Alltag, für einen pragmatischen Umgang mit Duplikaten kann man sich wohl einfach auf die Standardfiltermethode verlassen und die Duplikate ohne weitere Kontrolle entfernen lassen.

Aber es ist gut zu wissen, dass eine einfache visuelle Kennzeichnung von Duplikaten mit Standardmitteln von LO (Bedingte Formatierung) möglich ist, eben ohne die Zusammengehörigkeit von Duplikaten zeigen zu können.

Letzteres ist naheliegenderweise eine komplexe Geschichte.

Ja, kompliziert. Aber so ist das halt, wenn man ein Werkzeug so ausreizt, dass es Dinge tun kann, für die es nicht erfunden wurde. Weder Calc noch Excel sind Datenbankprogramme, auch wenn Excel alles daran setzt, eines zu werden, weil sie bei MS auch merken, dass die Nutzer das erwarten. Nur ist das überhaupt keine gute Lösung im technischen Sinne, weil es ja immer noch kompatibel mit herkömmlichen Tabellenkalkulationen bleiben muss.

Daten>Filter>Standardfilter mit Option “Keine Duplikate” ist doch eigentlich gut genug.

Meine Datei soll eigentlich abschrecken!
Denn die logische Fall-Funktion – in CALC: =WENNS() – muss ein Programmierer beherrschen, denn sie ist Standard und führt nur allzu gerne eine Endlosschleife durch, sobald irgendein Parameter nicht passend ist, beispielsweise Laufzeit-Fehler, nicht gefundene Flags bei dominantem Signal-Input, etc… Jeder Nicht-Programmierer begibt sich damit aufs Glatteis!


Andererseits: Obwohl jedes Tabellenkalkulation-Programm genau genommen keine echte technische Tabelle beinhaltet, sondern nur eine Listung von Werten, Variablen, die grafisch als „Rechenkästchen“-Tabelle am Monitor erscheinen, verführt die Optik eben dazu, CALC/EXCEL als Datenbank zu „missbrauchen“. Die Funktionalität einer Datenbank kann eine Kalkulation nicht annähernd erreichen, umgekehrt genau so wenig. Ich muss mich selbst mit einer Datenbank-EXCEL-Form zufrieden geben, die ein bekannter Elektronik-Hersteller jährlich seinen Kunden anbietet mit Daten all seiner Produkte: 36× Spalten, mehr als 55.000× Zeilen ohne auch nur einer Berechnung, darin Zahlen-Werte teilweise als Text oder als Nummer. Firmen-intern wird mit spezifischen Datenbanken gearbeitet.