Gibt es etwas Ähnliches wie Power Query (Excel) für Calc?

Guten Tag miteinander,

Win 10; LibreOffice 6.3.5.2; x64

immer wieder sollte ich in Calc Dateien oder Tabellen miteinander vergleichen können. Dabei reicht es nicht Spalten einer Zeile zu vergleichen, sondern folgende Situationen müssten auch abgedeckt sein:

  • nach gleichen Zeilen können wieder unterschiedliche Zeilen kommen; danach kann es aber wieder gleich weitergehen.

Es können Zeilen bei der einen Tabelle fehlen oder es können auch mehrere Zeilen mehr sein.

In Excel gibt es sowas für 2010 und 2013 als Add-in und ab Version Excel 2016 ist dies integriert. Das nennt sich Power Query.

Ich habe herausgefunden, dass @Lupp und @Dscheikey an etwas ähnlichem für jemand anderes gearbeitet haben. Aber ich habe (noch) nicht kapiert, ob es die obigen Bedürfnisse abdeckt.

Vielleicht gibt es ja ein ähnliches Add-in für Calc wie es das für Excel gibt. Weiß da jemand was?

Danke in Voraus für Antworten

Harald

Inzwischen habe ich herausgefunden, dass “Power Query” ab Excel-Version 2016 “Get&Transform” heißt.
Vielleicht hilft’s weiter?
Gruß Harald

I don’t feel sure about what of my activities you wanted to point to.
Ich weiß nicht recht, auf welche Beiträge meinerseits du anspielst.
Did you read
Hast du gelesen: [Solved] Excel-AddIn 'Power Query' in OpenOffice Calc (View topic) • Apache OpenOffice Community Forum ?

Hallo Lupp,

Thankyou for the link, much to read and in english, hmm?

Danke für den Querverweis; viel zu lesen und in englisch, hmm?

Regards Harald

Grüße Harald

Hallo Harald,
ich kann dir leider nicht beantworten, ob es ein Extension für solch eine Aufgabe gibt. Ich kenne keine.

Ob die Lösungen von @Lupp und mir für deine Vergleiche passen, ist schwer zu beantworten. Ist halt jedes mal etwas anders. In dem Fall von @Hacksaw1956 war es so das die Spalte A (~Artikelbezeichnung) verglichen wurde. Das kann in deinem Fall ja ganz anders sein. Eventuell brauchst du eine Hilfsspalte in der du den Vergleich vornehmen möchtest. z.B. =A2&B2&C2.
Ich habe die Datei von @Lupp von damals heute noch mal in die Mangel genommen und die ganzen Hilfsspalten entfernt und die Formel in einer Spalte zusammengefasst. Dadurch wurde die Datei auch kleiner. Sehr wahrscheinlich muss die Formel aber für deine Bedürfnisse angepasst werden.

Tabellen_vergleich

Wenn du das nicht selbst hinbekommst, ist dir hier bestimmt jemand behilflich.

mfg

Jürgen

@Lupp

ich habe mir Deinen Link heute Morgen nochmals angeschaut. Scheint tatsächlich das zu sein was ich will. Ich melde mich wieder wenn ich durchgekommen bin.

Danke Lupp

*I took another look at your link this morning. Seems to be what I really want. I’ll get back to you when I get through.

Thanks, Lupp.*

@dscheikey

Hallo Jürgen,

wenn meine minimalen Kenntnisse über Funktionen ausreichend sind, bezieht sich Dein Ansatz “lediglich” auf das vergleichen von Spalten innerhalb der selben Zeile unterschiedlicher Tabellen.

Ich muss Stücklisten von Maschinen vergleichen und die Unterbaugruppen sind in anderen Abteilungen nicht immer in der selben Reihenfolge erstellt worden. Da würde Dein Ansatz nicht ausreichen.

Trotzdem herzliches Dankeschön für Deine Bemühung.

Gruß Harald

“By The Way”: Meine Muttersprache ist tatsächlich Deutsch. Dass ich meinen ersten Kommentar auf Englisch verfasst habe, war der Gewohnheit geschuldet. Im deutschsprachigen Forum sind nun wieder genügend “Mitarbeiter” unterwegs, und ich besuche es nur noch ausnahmsweise.
Zum Link, das ich eingefügt habe: Ich habe die dort erwähnte Lösung nie selbst benutzt.
Zu meinen alten Beiträgen zu einschlägigne Fragen: Ich habe zeitweilig die Möglichkeiten, typische Datenbankaufgaben mit Formelapparaten (manchmal ergänzt mit etwas “Benutzercode”) zu lösen aus grundsätzlichem Interesse erforscht, habe aber Lösungen nur vorgestellt, und nicht empfohlen. Selbst praktisch angewandt habe ich sie auch nicht. Heute würde ich eher davon abraten. Ganz eindeutig gilt das für meine alten Experimente bezüglich “Fixierung von Ergebnissen (History-Sensitivity”). Sie sind grundsätzlich unzuverlässig.

(Fortsetzung)
Anwendungen von “QueryByFormulas” können zuverlässig sein, wenn sorgfältig und sachkundig eingesetzt. Sie sind dann aber ineffizient und unflexibel, und genügen nie ohne viel Zusatzprogrammiererei gehobenen Ansprüchen an Datensicherheit und -schutz.

Betrachtet man das Formelkonzept von Rechenblättern als eine Programmiersprache, so gehört es zur Klasse der “Funktionalen Sprachen”, ist aber ein extrem primitiver Vertreter davon.

Jetzt sollte ich vielleicht noch mein Vorurteil erwähnen, dass etwas, was speziell für Excel “ganz wunderbar empfehlenswert und Youtube-gehärtet” ist, nichts taugen kann.

Hallo miteinander,
der Ansatz von @Lupp

http://user.services.openoffice.org/fr/forum/viewtopic.php?t=15998

hat leider nicht zum erwarteten Ergebnis geführt.

Insofern bin ich wieder bei @dscheikei

Wäre es möglich Deinen heute bereitgestellten Tabellen_vergleich folgendermaßen zu modifizieren?

  • Die Tabellennamen könnte man belassen
  • von 4 Spalten (die immer dieselben Namen haben: Auflösungsstufe, Positionsnr, Komponentennummer, Objektkurztext ) müssten die Spalte 3 beider Tabellen untersucht werden. Die Spalte 3 ist meist eine Zahlenspalte, kann aber auch manchmal Text enthalten. In Spalte 5 der Tabelle “Tabelle_neu” könnte Dein “Status” eingetragen werden.

bis bald

Harald

Hallo Harald,

ich habe die Tabelle nach deinen Wünschen angepasst. Viel Erfolg damit.

Um die Spalte E (Status) im Arbeitsblatt Tabelle_neu nach unten zu erweitern, kopiere bitte eine der Zellen darüber und füge sie in der Spalte so oft wie benötigt ein. Du kannst vor dem Einfügen den Bereich markieren. Du kannst nicht mit der Maus nach unten ziehen um die Formel zu erweitern. Das funktioniert wegen der Matrixformel nicht.
Im Arbeitsblatt Tabelle_alt kannst du mit der Maus arbeiten. Dort ist es kein Problem.

Tabelle_vergleichen-neu

Falls du weitere Fragen hast, melde dich einfach wieder.

mfg

Jürgen

Hallo Jürgen,
ich komme gerne auf Dein Angebot, mich zu melden, zurück.

Ich habe die Datei getestet und meine Ergebnisse stimmen nicht mit den Erwartungen überein. Kann es sein, dass Deine Funktion nicht nur die Spalte “Komponentennummer” überprüft, sondern z. B. auch “Positionsnr”? Das wäre nicht so gewünscht; es soll NUR die Spalte “Komponentennummer” geprüft werden. Die anderen Spalten dienen nur der Übersicht.

Folgendes habe ich versucht:

solange in der Spalte “Status” das Ergebnis “unverändert” gekommen ist, wusste ich, das bis dorthin in beiden Tabellen alles gleich ist. Also habe ich in beiden Tabellen alle Zeilen bis dort hin rausgelöscht.
Danach habe ich geänderte Zeilen der einen oder anderen Tabelle gelöscht. Danach sollten die Einträge ja wieder stimmen.
Trotzdem, auch wenn dann die Komponentennummer in beiden Tabellen gleich ist (in Zeile 2) kommt der Status “geändert” und nicht “unverändert”. Hier meine ich liegt ein Fehler.

Grüße Harald

Hallo Harald,

ja es war tatsächlich so, das die Spalte C nur den Status Neu bzw. nicht in Tabelle_neu beeinflusst hat. Änderungen in den anderen Spalten wurden dann mit “geändert” angezeigt. Das war so der Sinn der ganzen Übung für den User damals. Wie ich schon mal erwähnt habe ist solch ein Tabellen oder wie in deinem Fall Spaltenvergleich immer etwas anders und muss individuell gebaut werden.
Jetzt beim Vergleich nur einer Spalte gibt es dann nur noch Neu, nicht in Tabelle_neu oder unverändert.
Ist so deutlich einfacher. Eine Matrixformel benötigt man nicht mehr. Die Einschränkung die ich oben geschrieben habe bezüglich Zellen erweitern fallen weg.

Schau mal ob die Tabelle jetzt so deinen Vorstellungen entspricht. Falls nicht meldest du dich einfach.

Spaltenvergleich

mfg

Jürgen

Hallo Jürgen,

ich bin etwas baff :slight_smile:

Es funktioniert! und ich weiß nicht warum.

Wenn ich in der einen oder anderen Tabelle eine Zeile einfüge, müsste die Funtion doch durcheinander kommen. Tut sie aber nicht!

Wird die komplette Spalte abgefragt? Und was wäre dann wenn eine Komponentennummer in der Spalte doppelt oder gar mehrfach vorkäme was ja durchaus vorkommen kann?
Kannst Du mich gelegentlich aufklären?

Ich bin bis nächste Woche wahrscheinlich nicht mehr im Forum.

Danke und liebe Grüße
Harald

PS: Wenn ich Dir Punkte geben möchte; geht das nur links oben an Deinem Beitrag, wie ich das gemacht habe?

Hallo Harald,

ja die ganze Spalte wird untersucht. Das ist einfacher, als die User daran zu erinnern, das sie die Bereiche ggf. anpassen müssen. Falls dein Rechner in die Knie geht, musst du eventuell auf diesen Luxus verzichten und doch Bereiche angeben, in denen gesucht wird.

Wenn Werte doppelt oder mehrfach vorkommen? Der Vergleich geht von der ersten Zeile los und arbeitet sich nach unten fort. Sobald ein Treffer vorliegt, wird nicht mehr weiter gesucht. Das bedeutet es ändert in dieser Version des Vergleichs gar nichts. Wenn der Wert das erste mal vorkommt, wird Neu oder unverändert ausgegeben, je nachdem ob der Wert in Tabelle_alt vorliegt.

Falls es dir wichtig ist zu wissen, ob ein Wert mehrfach vorkommt, habe ich dir in dieser neuen Version eine bedingte Formatierung eingebaut, sobald in der Spalte C ein doppelter Wert eingegeben wird, bekommst du eine optische Warnung. (Fortsetzung folgt)

Fortsetzung: Außerdem findest du in der Zelle F1 einen Hinweis und in der Zelle G1 die Anzahl der insgesamt doppelten Werte. Falls du große Datenmengen in die Tabelle hineinkopierst, sieht man ja nicht gleich ob doppelte dabei sind.
Hier habe ich allerdings die Formel nur bis Zeile 1000 suchen lassen. Wenn das nicht ausreicht, müsstest du die Formel anpassen. Achtung Matrixformel am Ende mit Strg + Hochstellen + Enter bestätigen. Hier wäre ein Vergleich über die ganze Spalte zu rechenintensiv.

Zu den Punkten: Ich glaube die Punkte bei den Kommentaren bewirken nichts beim Karma. Wenn ich dir irgendwann mal die finale Version gebastelt habe, kann ich ja nochmals kurz als Antwort zusammenfassen. Diese kannst du dann als richtige Antwort markieren. Das gibt dann ein gutes Karma (hoffentlich auch für mein nächstes Leben) :-).

MFG

Jürgen

Spalte_Vergleich_neu

Hallo Jürgen,

danke für Deine neuerliche Arbeit :slight_smile:

Deine erklärenden Texte haben mich (technischer Redakteuer) durcheinander gebracht.

Hier mein Versuch einer Entwirrung (für andere Mitlesende)

Die Tabellen (beide) haben 3 Funktionen die man verstanden haben sollte:

  1. Duplikate innerhalb 1 Tabelle > Spalte ″C″ erkennen und anzeigen

  2. Vergleich der ″Tabelle_alt″ mit der ″Tabelle_neu″

  3. Formel in Spalte ″Status″ vervielfältigen

zu 1. (gilt für beide Tabellen)

in Deiner zugesandten Vorlage ″Spalte_vergleichen_neu.ods″ werden die Duplikate farbig hinterlegt, bei meinen Daten aber nicht. Es werden zwar in Spalte ″G″ die Anzahl der doppelten Werte aufgezeigt, aber das Zeichenformat ″Bad″ hat keiner der doppelten Werte. Inzwischen habe ich herausgefunden, dass der Bereich für die bedingte Formatierung wohl beim Hereinkopieren meiner Daten ″angepasst″ wird und somit nichts mehr angezeigt wird. Ein Ändern des Bereichanfangs auf ″C2″, dann funktioniert‘s wieder.

Fortsetzung folgt

Fortsetzung

zu 2.

Momentan meine ich, dass alles funktioniert. Kapiert habe ich den Aufbau allerdings nicht. Vielleicht kannst Du die Formel, beginnend bei der innersten Klammer, erläutern. Ich meine nicht die Syntax, sondern nur die grobe Arbeit, die verrichtet wird.

zu 3.

an was kann ich eine sogenannte ″Matrixformel″ erkennen? Muss ich die Formeln in Spalte ″E″ kopieren oder kann ich sie mit der Maus runterziehen. Gilt das für beide Tabellen?

Als EDV-Skeptiker (30 Jahre Erfahrung) werde ich die Datei weiter prüfen bzw. verwenden und nach einer Zeit hier berichten.

Für mich ist die Funktion erstmal als erledigt (funktionierend) abgeschlossen und ich möchte mich nochmals herzlich bedanken :slight_smile:

Vielleicht kannst Du, wie von Dir bereits angesprochen, eine abschließende Antwort verfassen, die ich dann abhaken (und bewerten) kann.

Liebe Grüße

Harald

Hallo Harald,

wie versprochen hier noch einige Erläuterungen zu meiner letzten Antwort-Datei.

Für die Vergleiche einer Spalte zwischen zwei unterschiedlichen Arbeitsblättern wurde die Vergleich Funktion verwendet. In der Tabelle “Tabelle_neu” mit den neueren Daten wird in Spalte E mit der Formel =WENN(ISTNV(VERGLEICH(C2;$Tabelle_alt.C:C;0));"Neu";"unverändert") der Wert aus der aktuellen Zeile in Spalte C mit allen Werten in der Spalte C in der Tabelle “Tabelle_alt” verglichen. Wenn es keine Übereinstimmung gibt, also der Wert ursprünglich noch nicht vorhanden war, erhalten wir einen #NV Fehler, der in der WENN() Funktion mit ISTNV() dann zu der Ausgabe “Neu” führt. Bei einem Treffer mit der gleichen Logik die Ausgabe “unverändert”.
In der Tabelle “Tabelle_alt” wird mit der Abfrage =WENN(ISTNV(VERGLEICH(C2;$Tabelle_neu.C:C;0));"nicht in Tabelle_neu";"unverändert") nach dem selben Muster wie zuvor nach Treffern in der Tabelle Tabelle_neu gesucht. Ohne Übereinstimmung erhalten wir: “nicht in Tabelle_neu”, mit einer Übereinstimmung die Ausgabe: “unverändert”.
Es wird nur nach der Spalte C analysiert!
Über eine bedingte Formatierung werden außerdem doppelte Einträge (Analyse nur in Spalte C) mit Rot markiert. Außerdem wird in der Zeile 1 die Warnung nach doppelten Einträgen ausgegeben.

Die Ursprüngliche Frage nach PowerQuery konnte zwar nicht beantwortet werden. Es wurde aber ein guter Workaround angeboten, der die Bedürfnisse erfüllen konnte.

mfg

Jürgen

Hier nochmals die abschließende Datei: Spalte_vergleichen_neu.ods

Aus Antwort von @Harald_LibreOffice entnommen und hier eingefügt. Antwort gelöscht.

Hallo Jürgen,

nach Deinen abschließenden Erklärungen habe ich eine noch offene Sache verstanden.

... der Wert aus der aktuellen Zeile in Spalte C mit allen Werten in der Spalte C in der Tabelle "Tabelle_alt" verglichen ...

Das war nicht die Anforderung, sondern ich wollte zusammenhängende Baugruppen und verschachtelte Unterbaugruppen (zusammenhängende Zeilen) miteinander vergleichen. Wie Du richtig erklärst ist es deshalb nicht die “Antwort” auf die ursprünglich gestellte Anforderung, sondern eine Behelfslösung (workaround).

Für meinen Anwendungsfall - mit eben diesem Hintergrundwissen - ist die Lösung aber sehr wohl zu gebrauchen.

Ich möchte mich noch einmal herzlich bedanken (auch für die Nachtarbeit :-); die E-Mail kam um halb zwei heute Morgen; und kann mit der Lösung gut leben.

Liebe Grüße

Harald

Hallo Jürgen,

muss noch was hinzufügen (anstandshalber)

ich selbst habe die Anforderungen auf die Spalte C (Komponentgennummer) heruntergebrochen. Daher war auch gar keine andere Lösung möglich. Zusammen mit der Spalte A (Auflösungsstufe) hätte die ursprüngliche Anforderung wohl eher verwirklicht werden können.

Liebe Grüße

Harald