Frage stellen
0

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

gefragt 2020-08-10 17:34:45 +0200

Harald_LibreOffice Gravatar-Bild

updated 2020-08-11 07:25:22 +0200

ebot Gravatar-Bild

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

Bearbeiten Tags ändern Melden schließen vereinen löschen

Kommentare

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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-11 11:33:26 +0200 )Bearbeiten

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: https://forum.openoffice.org/en/forum... ?

Lupp Gravatar-BildLupp ( 2020-08-11 14:39:46 +0200 )Bearbeiten

Hallo Lupp,

https://ask.libreoffice.org/de/questi...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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-11 14:57:30 +0200 )Bearbeiten

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

dscheikey Gravatar-Bilddscheikey ( 2020-08-11 18:00:19 +0200 )Bearbeiten

@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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-12 08:41:47 +0200 )Bearbeiten

"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.

Lupp Gravatar-BildLupp ( 2020-08-12 11:14:25 +0200 )Bearbeiten

(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.

Lupp Gravatar-BildLupp ( 2020-08-12 11:19:08 +0200 )Bearbeiten

Hallo miteinander, der Ansatz von @Lupp

http://user.services.openoffice.org/f...

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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-12 12:52:42 +0200 )Bearbeiten

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

dscheikey Gravatar-Bilddscheikey ( 2020-08-12 15:49:39 +0200 )Bearbeiten

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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-12 17:04:35 +0200 )Bearbeiten

1 Antwort

1

geantwortet 2020-08-19 01:26:05 +0200

dscheikey Gravatar-Bild

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: C:\fakepath\Spalte_vergleichen_neu.ods

Bearbeiten Melden löschen Link mehr

Kommentare

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

PKG Gravatar-BildPKG ( 2020-08-19 09:18:11 +0200 )Bearbeiten

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

Harald_LibreOffice Gravatar-BildHarald_LibreOffice ( 2020-08-19 09:26:01 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

3 Beobachter

Statistik

Gefragt: 2020-08-10 17:34:45 +0200

Angesehen: 450 Mal

Aktualisiert: Aug 19 '20