Werte in Zelle durch Makro sortieren und Kommata entfernen
Moderator: Moderatoren
-
- ***
- Beiträge: 51
- Registriert: Mi, 15.04.2009 10:52
Werte in Zelle durch Makro sortieren und Kommata entfernen
Hallo,
ich habe eine Tabelle, in der ich verschiedene Kategorie-IDs für eine Datenbank verknüpfe. Dadurch erhalte ich recht lange Zahlenreihen für jede Zelle, die Zahlen enthalten, die durch Kommata getrennt werden.
Jetzt hätte ich gerne, dass jede Zahl nur einmal vorkommt und nicht doppelt oder dreifach.
Ausserdem bekomme ich ein Problem bei einem Import auf einer Internetseite, wenn ich doppelte Kommas in den Zellen habe.
Im Calc-Forum habe ich in diesem Beitrag bereits gelesen, dass man die Werte mithilfe eines Makros sortieren kann.
Gibt es eine Möglichkeit, mit einem Makro die doppelten Werte und Kommas ausfindig zu machen und zu entfernen?
Ich hänge mal eine Beispieldatei an.
Vielen Dank für eure Hilfe!
ich habe eine Tabelle, in der ich verschiedene Kategorie-IDs für eine Datenbank verknüpfe. Dadurch erhalte ich recht lange Zahlenreihen für jede Zelle, die Zahlen enthalten, die durch Kommata getrennt werden.
Jetzt hätte ich gerne, dass jede Zahl nur einmal vorkommt und nicht doppelt oder dreifach.
Ausserdem bekomme ich ein Problem bei einem Import auf einer Internetseite, wenn ich doppelte Kommas in den Zellen habe.
Im Calc-Forum habe ich in diesem Beitrag bereits gelesen, dass man die Werte mithilfe eines Makros sortieren kann.
Gibt es eine Möglichkeit, mit einem Makro die doppelten Werte und Kommas ausfindig zu machen und zu entfernen?
Ich hänge mal eine Beispieldatei an.
Vielen Dank für eure Hilfe!
- Dateianhänge
-
- Werte_sortiert.ods
- (17.5 KiB) 29-mal heruntergeladen
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Zur Lösung Deiner Aufgabenstellung braucht es kein Makro...
Doppelte Kommata entfernen: Suchen&Ersetzen nutzen
Doppelte Datensätze: Daten>Filter>Standardfilter>Zusätze... keine Duplikate, Filterergenis ausgeben nach... (neues Tabellenblatt)
Hilft Dir das?
Doppelte Kommata entfernen: Suchen&Ersetzen nutzen
Doppelte Datensätze: Daten>Filter>Standardfilter>Zusätze... keine Duplikate, Filterergenis ausgeben nach... (neues Tabellenblatt)
Hilft Dir das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Hallo
Lass doch in Spalte B suchen und ersetzen:
suche nach
,*
ersetzen durch
,
[x] nur in Selektion
[x] regulärer Ausdruck
in D3 nimmst du die Formel:
=ZELL_SORT(B3;",")
und ziehst nach unten
Hier ist die Function dazu:
Die Funktion sortiert jetzt numerisch (1,2,11,22..), nicht mehr alphanumerisch(1,11,2,22...)
Gruß Karo
Lass doch in Spalte B suchen und ersetzen:
suche nach
,*
ersetzen durch
,
[x] nur in Selektion
[x] regulärer Ausdruck
in D3 nimmst du die Formel:
=ZELL_SORT(B3;",")
und ziehst nach unten
Hier ist die Function dazu:
Code: Alles auswählen
function zell_sort(zahlenstring as string ,optional trenner as string) as string
Dim Count As Integer
Dim Count2 As Integer
Dim Temp As String
if isMissing( trenner) then
trenner = " "
end if
ainput = split(zahlenstring , trenner)
if ubound(ainput) = 0 then
zell_sort = "#?trenner?#"
exit function
end if
For Count = 0 To ubound(ainput)
For Count2 = Count To ubound(ainput)
If val(ainput(Count)) > val(ainput(Count2)) Then 'val... für numerische Sortierung
Temp = ainput(Count)
ainput(Count) = ainput(Count2)
ainput(Count2) = Temp
End If
Next Count2
Next Count
zell_sort = join(ainput, trenner)
End function
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- ***
- Beiträge: 51
- Registriert: Mi, 15.04.2009 10:52
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Das Komma-Problem habe ich anders lösen können.
Die Idee mit ZELL_SORT würde ich gerne ausprobieren, aber dazu fehlen mir leider wohl die Vorkenntnisse.
Könntest du mir das vielleicht mal in die Beispieldatei einbauen, damit ich sehe, wie man die Function anlegt?
Danke schon mal!
Die Idee mit ZELL_SORT würde ich gerne ausprobieren, aber dazu fehlen mir leider wohl die Vorkenntnisse.
Könntest du mir das vielleicht mal in die Beispieldatei einbauen, damit ich sehe, wie man die Function anlegt?
Danke schon mal!
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Hallo
Gehe nach der Anleitung im OOo-wikivor, insbesondere das Kapitel "Quelltext übernehmen"
Gruß Karo
Gehe nach der Anleitung im OOo-wikivor, insbesondere das Kapitel "Quelltext übernehmen"
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- ***
- Beiträge: 51
- Registriert: Mi, 15.04.2009 10:52
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Das gibt den BASIC syntax error aus, dass eine Function nicht erlaubt ist...
Was mache ich falsch?
Ist es ein Problem, wenn ich mit einer englischsprachigen OO-Version arbeite?
Was mache ich falsch?
Ist es ein Problem, wenn ich mit einer englischsprachigen OO-Version arbeite?
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Hallo
Die Sprachversion ist sicher egal, aber mit der Fehlermeldung kann ich nichts anfangen - wann und wo kommt die Fehlermeldung?
Gruß Karo
Die Sprachversion ist sicher egal, aber mit der Fehlermeldung kann ich nichts anfangen - wann und wo kommt die Fehlermeldung?
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- ***
- Beiträge: 51
- Registriert: Mi, 15.04.2009 10:52
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Ich habe folgendes in den Editor eingegeben, wie im Wiki beschrieben.
Und wenn ich dann in meine Zelle =zell_sort(H3) eingebe, passiert nichts, wenn ich das Makro laufen lassen will, kommt die Fehlermeldung direkt nach Sub Main.
Wie schaffe ich es, dass die Funktion funktioniert?
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
[color=#FF0000]Function[/color] zell_sort(zahlenstring as string ,optional trenner as string) as string
Dim Count As Integer
Dim Count2 As Integer
Dim Temp As String
if isMissing( trenner) then
trenner = ","
end if
ainput = split(zahlenstring , trenner)
if ubound(ainput) = 0 then
zell_sort = "#?trenner?#"
exit function
end if
For Count = 0 To ubound(ainput)
For Count2 = Count To ubound(ainput)
If val(ainput(Count)) > val(ainput(Count2)) Then 'val... für numerische Sortierung
Temp = ainput(Count)
ainput(Count) = ainput(Count2)
ainput(Count2) = Temp
End If
Next Count2
Next Count
zell_sort = join(ainput, trenner)
End function
End Sub
Wie schaffe ich es, dass die Funktion funktioniert?
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Hallo
In der Wiki-anleitung wird explizit erwähnt das du die automatisch generierten Zeilen 'Sub Main' und 'end Sub' entfernen sollst ....
In der Wiki-anleitung wird explizit erwähnt das du die automatisch generierten Zeilen 'Sub Main' und 'end Sub' entfernen sollst ....
Gruß KaroWiki hat geschrieben:....Es öffnet sich der Makro-Editor mit einem leeren Makro:
Sub Main
End Sub
Löschen sie die Zeilen "Sub Main" und "End Sub", markieren .....
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- ***
- Beiträge: 51
- Registriert: Mi, 15.04.2009 10:52
Re: Werte in Zelle durch Makro sortieren und Kommata entfernen
Danke... Wer lesen kann, ist klar im Vorteil 
Jetzt klappts natürlich!
Vielen Dank für deine Hilfe!

Jetzt klappts natürlich!
Vielen Dank für deine Hilfe!