2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

bock70
*
Beiträge: 10
Registriert: So, 19.06.2005 18:03

2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von bock70 »

Hallo zusammen!

Nachdem Ihr mir kürzlich schon so super weitergeholfen habt, hier nochmals eine kurze Frage an Euch:

Ich habe stets zwei txt.-Listen, wovon die eine bereits meine bisher angeschriebene Email-Adressen enthält und bei der anderen immer komplett neue Adressen hinzukommen. Da es immer nur ein einmaliges Mailing sein soll (um Belästigung zu vermeiden), was ich verschicken will, möchte ich natürlich nicht, dass bei den Neuen, auch die Adressen abermals angeschrieben werden, welche die Mail bereits vormals bekommen haben, also sich bereits in der "alten" Liste befinden.

Somit habe ich eine alte, immer länger werdende Liste (weil ich die neuen Adressen nach erfolgtem Versand natürlich immer in die alte, bestehende Liste hineinkopiere). Bei ein paar wenigen Adresse kann man das natürlich auch "von Hand" vergleichen, ob die Neuen nun bereits vorhanden sind oder nicht. Nun hat meine Liste aber einen Umfang erreicht, welcher dies unmöglich macht.

Nun endlich zu meiner Frage:
Ich würde somit gerne einfach zwei Spalten (alte & neue Adressen) anlegen und diese dann autom. "vergleichen" lassen, sodass dann in der 3. Spalte nur noch die komplett neuen, bisher nicht in der 1. Spalte vorhandenen Adressen ausgegeben werden ....

Ich hoffe, ich habe das trotz langem Vorspann, einigermassen verständlich erklären können .....

Vielen Dank fuer Eure Hilfe .....
chrk
*******
Beiträge: 1670
Registriert: Sa, 22.09.2007 18:09

Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von chrk »

Hallo,
Du hast drei Spalten mit entsprechender Überschrift: alte Liste, neue Liste und neue Adressen.
jetzt benennst Du über Einfügen>Namen den Bereich mit der alten Liste (ohne Überschrift) als 'alteListe', das vereinfacht die Formel und die Referenzen.
Unter neue Adressen, also in C2, trägst Du folgende Formel ein:

Code: Alles auswählen

=WENN(SUMMENPRODUKT(alteListe=B2)=0;B2;"")
und ziehst die so weit runter wie die neue Liste reicht.

Jetzt hast Du in Spalte C die neuen Adressen munter über die Spalte verteilt. Per Daten>Filter>Standardfilter filterst Du jetzt die Spalte auf nicht leere: Feldname: neue Adressen, Bedingung: <>, Wert (leer).

Damit werden alle Zeilen, in denen neue Adressen leer ist, ausgeblendet. Die kannst Du jetzt kopieren und weiter verwenden; außerdem kannst Du sie so wie sie sind ans Ende von alte Liste kopieren, um die weiter zu führen. Dazu markierst Du die neuen Adressen, drückst <strg>+<c> und fügst sie ein mit Bearbeiten>Inhalte einfügen, das Häkchen bei Formeln aus. Und Du markierst die erweiterte alte Liste und definierst über Einfügen>Namen>Festlegen>Ändern den Namen neu, um ihn beim nächsten Mal wieder zu verwenden.

Anschließend entfernst Du den Filter über Daten>Filter>Filter entfernen.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von turtle47 »

Hallo Zusammen,

man kann das natürlich so machen wie es Christian beschrieben hat. Ich finde das aber recht umständlich wenn man das öffters machen möchte.
Einfacher geht es dann mit folgendem Makro:

Code: Alles auswählen

Sub MailDubletten_finden
	odoc=thiscomponent
	oSheet = ThisComponent.CurrentController.getActiveSheet()'aktives Tabellenblatt
	oCellCursor = oSheet.createCursor()
	oCellCursor.GotoEndOfUsedArea(True)
	letzte_Zeile = oCellCursor.getRangeAddress.EndRow 'letzte Zeile mit Inhalt finden
	oQuelleRange=oSheet.getCellRangeByPosition(1,0,1,letzte_Zeile)'Bereich Spalte B kopieren
	oQuellRangeAddresse = oQuelleRange.getRangeAddress
	oZiel = oSheet.getCellByPosition(2,0) 'kopierten Bereich in Spalte C einfügen
	oZielCellAdresse=oZiel.getCellAddress
	oSheet.copyRange(oZielCellAdresse,oQuellRangeAddresse)
	for i = 0 to letzte_Zeile
	text1 = osheet.getcellbyposition(0,i).string 'Spalte A
	for j = 0 to letzte_Zeile
	text2 =osheet.getcellbyposition(2,j).string 'Spalte C
	if   text1 = text2 then ' wenn Inhalt in den Zellen Spalte A und C gleich dann...
	oNext = oSheet.getCellByPosition(2,j)
	oSheet.removeRange(oNext.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)'...Zelle löschen
	end if
	next j  
	next i
	msgbox "Der Vorgang ist abgeschlossen",64, "Maildubletten finden"
End Sub
Hier mal eine Beispieldatei
Maildubletten_finden.ods
(10.7 KiB) 105-mal heruntergeladen
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
bock70
*
Beiträge: 10
Registriert: So, 19.06.2005 18:03

Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von bock70 »

Hallo Jürgen,
Hallo Christian!

Ich danke Euch Beiden vielmals. Ihr habt mir wirklich sehr, sehr weitergeholfen.
Natürlich muss ich zugeben, dass das Makro von Jürgen nochmals eine Stufe einfacher zu bedienen ist ..... Unfassbar!

Nochmals Danke!
chrk
*******
Beiträge: 1670
Registriert: Sa, 22.09.2007 18:09

Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von chrk »

Ja, manche kochen nur mit Wasser, Jürgen hat den Tee dazu spendiert :lol:

In der Theorie hat mir der Ansatz, mit den beiden Schleifen das Ganze sequenziell zu lösen, auch vorgeschwebt - bietet sich bei der Aufgabenstellung an, aber mir fehlt das Wissen, das in ein Makro umzusetzen.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben

Beitrag von turtle47 »

chrk hat geschrieben:aber mir fehlt das Wissen, das in ein Makro umzusetzen.
und ich wäre niemals auf die Lösung von Christian gekommen.

Das nennt man ausgleichende Gerechtigkeit. :lol:

Schönen Sonntag noch.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten