Bitte Hilfe zu: finde doppelte Einträge und kopiere diese in neues Blatt * Gelöst *

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

SteHoc
Beiträge: 7
Registriert: Do, 18.06.2020 23:21

Bitte Hilfe zu: finde doppelte Einträge und kopiere diese in neues Blatt * Gelöst *

Beitrag von SteHoc »

Hallo Cracks,

ich arbeite sowohl mit Calc 4 als auch Calc 6 in Deutsch und habe eine wachsende Datei mit weit über 500 Tabellenblättern.
In diesen Tabellenblättern sind alle Artikel eines jeweiligen Raumes gelistet.

Das „Summen-Tabellenblatt“ erstelle ich per Makro aus den befüllten Zeilen aller anderen Tabellenblättern. Es hat fünf Spalten und z.Zt. 6.000 Zeilen.
Spalte A ist ein erstellter Hyperlink auf das jeweilige Tabellenblatt.

SUMMENTABELLENBLATT:
Tabellenblattname, Anlagenumer, Bezeichnung, Raum, Verantwortlich

Franz_2501, 10002, rotes Sacko, 2501, Franz
Franz_2501, 10003, grünes Sacko, 2501, Franz
Franz_2501, 10004, Briefumschlag, 2501, Franz
Franz_2501, 20020, Tischgrill, 2501, Franz
Franz_2501, 33003, Kaffeetasse, 2501, Franz
Franz_2501, 33004, Kuchenteller, 2501, Franz
Konstantin_2501, 10009, Lederstuhl, 2501, Hans-Peter
Pauline_36258, 10006, grünes Sacko, 36258, Franz
Pauline_36258, 10007, rote Hose, 36258, Franz
Pauline_36258, 10005, schwarzes Hemd, 36258, Franz
Georg_108, 20025, Tischgrill, 108, Georg
Georg_108, 33008, Kaffeetasse, 108, Georg
Georg_108, 33004, Suppenteller, 108, Georg
Georg_108, 33004, Schraubenschlüssel, 108, Georg
Anette_A03, 10004, Gewürzregal, A03, Franz
Anette_A03, 20020, Senftube, A03, Franz


Es gibt also doppelte (und evtl. sogar mehrfache) Anlagenummern.

Bis dato habe ich mein Summentabellenblatt nach Anlagenummer sortiert und dann über eine bedingte Formatierung die Zellen eingefärbt (alles per Makro).
Formel für Doppelte: indirekt(""$B$""&TEXT(zeile();""#""))=indirekt(""$B$""&TEXT(zeile()-1;""#"")), DANN "roter Zellhintergrund"
Doppelte2: WENN indirekt(verketten(""$B$"";TEXT(zeile();""#"")))=indirekt(verketten(""$B$"";TEXT(zeile()+1;""#""))), DANN "roter Zellhintergrund"
Fortlaufende: WENN 1+wert(indirekt(verketten(.... zeile())=wert(indirekt(verketten(.... zeile()+1), DANN "grüner Zellhintergrund"

Funktioniert auch alles - bis auf die "Aktualisierung" der bedingten Formatierung: Ich muß nach MakroEnde händisch die bedingte Formatierung aufrufen, dann auf Bearbeiten und dann auf ok, ok. Dann färbt er mir die entsprechenden Zellen in Spalte B je nach Content richtig ein. D.h. ich habe die Formel zur bedingten Formatierung über ein Makro richtig eingeben können
{DIM oBedingung(3) as New com.sun.star.beans.PropertyValue |..| oBedingung(0).Name="Operator | oBedingung(0).Value=com.sun.star.sheet.ConditionOperator.FORMULA | ...},
NUR der "Refresh" mag (noch) nicht automatisch ;-(
trotz des Anwendebefehls oCellRange.setPropertyValue("ConditionalFormat", oBedingungen).
Hat jemand hierzu einen Hinweis/eine Idee woran das liegen könnte, daß die bedingte Formattierung nicht automatisch einfärbt?

Und als Zweites: Ich möchte nicht mehr seitenweise nach unten scrollen müssen, um dann z.B. nach dem 45. SeiteRunter das erste „doppelte“ Pärchen zu finden und nach weiteren 20 mal PgDn das nächste, sondern möchte bekommen alle Doppelten auf einem separaten Tabellenblatt zusammengefasst (und wenn ohne zu großen Aufwand möglich, durch Leerzeilen getrennt) - also die Zeilen mit den doppelten Nummern hier reinkopiert.

Also hätte das neue „Mehrfach-Tabellenblatt“ auch fünf Spalten und x Zeilen.
Für obiges Beispiel müsste es dann etwa wie folgt aussehen:

MEHRFACHTABELLENBLATT
Tabellenblattname, Anlagenumer, Bezeichnung, Raum, Verantwortlich

Franz_2501, 10004, Briefumschlag, 2501, Franz
Anette_A03, 10004, Gewürzregal, A03, Franz
[Leerzeile]
Franz_2501, 20020, Tischgrill, 2501, Franz
Anette_A03, 20020, Senftube, A03, Franz
[Leerzeile]
Franz_2501, 33004, Kuchenteller, 2501, Franz
Georg_108, 33004, Suppenteller, 108, Georg
Georg_108, 33004, Schraubenschlüssel, 108, Georg
[Leerzeile]


Wie geht so etwas am Besten?
Bis dato konnte ich mir noch immer über die Suche aus passenden Beiträgen das richtige herauskopieren und anpassen. Aber bei den Doppelten finde ich nur "Doppelte löschen" oder "Doppelte anzeigen" z.B. mit mit zählenwenn(B1:B6000;B1)>1 oder "nur den ersten Eintrag anzeigen", ...


Vielen Dank im Voraus, für Eure „geopferte“ Zeit ;-)

LG Stefan
Zuletzt geändert von SteHoc am Di, 30.06.2020 09:16, insgesamt 1-mal geändert.
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Bitte Hilfe zu: finde doppelte Einträge und kopiere diese in neues Blatt

Beitrag von Hiker »

Hallo,

ich würde die von Dir schon genannte Formel mit ZÄHLENWENN in eine zusätzliche Hilfsspalte setzen.

Dann kannst Du erstmal direkt in der sortierten Tabelle einen Filter setzen, der nur die doppelten Spalten anzeigt.

Wenn Du diese Datensätze wirklich in einer zweiten Tabelle haben willst, würde ich Spezialfilter verwenden und die Ausgabe in die zweite Tabelle lenken.
http://www.ooowiki.de/SpezialFilter.html

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
SteHoc
Beiträge: 7
Registriert: Do, 18.06.2020 23:21

Re: Bitte Hilfe zu: finde doppelte Einträge und kopiere diese in neues Blatt

Beitrag von SteHoc »

Gast hat geschrieben: Fr, 19.06.2020 17:45 eine Pivot Tabelle mit 2 zus. Spalten, Zählenwenn() und Zeile.
Sortieren nach Anzahl und mit Hyperlink als Formel in die Zeile springen.
Kann mir das bitte jemand etwas ausführlicher erläutern
und für was steht die Abkürzung "zus."? zusammenhängend oder zusätzlich oder ...

Mit Pivot-Tabellen hatte ich bis dato noch nichts zu tun.
Bei einer neuen Pivot Tabelle kann ich doch nur "Verfügbare Felder" mit der Maus schieben ;-(

In Foren, Google, Youtube, .. erzählen mir alle wie ich Doppelte entferne, markiere, ausblende, ...
Ich möchte aber das genaue Gegenteil. Ich will die NICHT-(mindestens)-Doppelten - also einfach vorkommenden - ausblenden/löschen/...

Ich hab's jetzt so gelöst, wie Hiker es vorgeschlagen hat:
Hilfsspalte setzen mit:
=und(zählenwenn(Anlagenummer_min:Anlagenummer_max;Anlagenummer_akt)>1;nicht(istfehler(suchen(links(anlagenummer;1);"0123456789";1))))
da auch manchmal "Nr. fehlt" oder "ohne Nummer" oder "ohne Nr.". ... drin steht

Wobei mich die Pivot-Lösung schon interessieren würde.
D.h. wenn jemand den Nerv hat, es mir etwas vorzukauen ;-) ...

LG
Stefan
echo
*******
Beiträge: 1005
Registriert: Fr, 14.11.2008 15:27
Wohnort: BRA - Nds

Re: Bitte Hilfe zu: finde doppelte Einträge und kopiere diese in neues Blatt

Beitrag von echo »

Hallo
Ich habe bis jetzt nicht geantwortet weil du von Makros geschrieben hast.
Einerseits kenne ich mich damit nicht aus, andererseits bekomme ich so etwas mit Formeln geregelt.

wenn du jetzt sowieso mit einer Hilfsspalte arbeitest,
dann kannst du diese auch per Formel abfragen um mit den Werten eine Übersicht zu erstellen und die eingebaute bedingte Formatierung bedienen um Duplikate einzufärben. Das geht dann auch automatisch ohne Makro
Dann lässt sich die Liste natürlich auch direkt über die Hilfsspalte >0 filtern

Gruß Holger
Dateianhänge
Mappe1.ods
(19.14 KiB) 127-mal heruntergeladen
Antworten