In dem kommenden Update des Plugins wird eine komfortable Möglichkeit vorgesehen sein, GAWK-Skripte auszuführen. Damit ist eine Vorverarbeitung des zu importierenden CSV-Datei möglich.
Ich werde mich die nächsten Tage in diesem Thread herumtreiben und auf evtl. Fragen eingehen, sofern welche auftauchen. Vielleicht bietet sich damit hier die Möglichkeit eine kleine Skripting-Werkstatt durchzuführen.
Für mehr Info bitte im Import-Plugin F1 drücken, sobald die neue Version installiert wurde!
Dann will ich mal das Skript für mein Haupt-Geschäftskonto zum Besten geben. Grundlage ist ein CSV-Export des Freeware-Online-Banking Programms Hibiscus.
BEGIN { print "Datum;Betrag;Beschreibung;Belegnummer;Konto;Steuersatz;Betrieb;Bestandskonto" ; anzahl = 0 }
FNR > 1 { # Header-Zeile überspringen
gegenkonto = $4
sub(/ *\"$/, "", gegenkonto) # Leerzeichen und Anführungszeichen am Ende des Gegenkontos löschen
sub(/^\"/, "", gegenkonto) # Anführungszeichen am Anfang des Gegenkontos löschen
sub(/^0*/, "", gegenkonto) # Nullen am Anfang des Gegenkontos löschen
gegenkontoinhaber = $6
sub(/ *\"$/, "", gegenkontoinhaber) # Leerzeichen und Anführungszeichen am Ende des Namens löschen
sub(/^\"/, "", gegenkontoinhaber) # Anführungszeichen am Anfang des Namens löschen
betrag = $7
betrag_mit_dezimalpunkt = betrag
sub(/ *\"$/, "", betrag) # Anführungszeichen am Ende des Betrags löschen
sub(/^\"/, "", betrag) # Anführungszeichen am Anfang des Betrags löschen
sub(/,/, ".", betrag); # Komma durch Punkt ersetzen
IGNORECASE = 1
switch (gegenkontoinhaber)
{
# Einnahmen
case "RETELL LIMITED": # ein Kunde von mir
if (betrag > 0)
konto = "Lizenzeinnahmen Retell UST-ID GB442507958";
break
case "AMAZON.DE MUENCHEN": # Hier bekomme ich Geld, wenn jemand über den Buchtipps-Link auf easyct.de Steuerfachliteratur kauft
if (betrag > 0)
konto = "Amazon Werbekostenerstattungen UST-ID LU20260743"
break
# Ausgaben
case "Michael Zoellner": # antlg. Miete für Soundstudionutzung
if (betrag < 0)
konto = "Anmietung von Gewerbefläche"
break
case "Thomas Mielke": # Privatentnahmen auf mein Privatkonto
case "MIELKE, THOMAS":
if (gegenkonto == 1942522)
{
if (betrag < 0)
konto = "/Privatentnahmen"
else
konto = "/Privateinlagen"
}
else if (gegenkonto == 5531742023) # ist ein weiteres Geschäftskonto von mir
konto = "/Transfers zwischen Geschäftskonten"
break
case "PAYPAL": # Abbuchungen von PayPal ans Bankkonto
konto = "/Transfers zwischen Geschäftskonten"
belegnummer = substr(verwendungszweck, 1, 16) # PayPal Transaktionsnummer als Belegnummer verwenden
verwendungszweck = substr(verwendungszweck, 18) # restlichen Verwendungszweck beibehalten
break
case "GVL": # gelegentliche private Zahlung vom Geschäftskonto aus
if (betrag < 0)
konto = "/Privatentnahmen"
break;
case "AV.COM": # ein Zulieferer, Auftragsbestätigungsnummer im Verwendungszweck als Belegnummer nehmen
if (betrag < 0)
{
konto = "Medienkosten"
steuersatz = 19
}
break
case /DEUTSCHE POST/: # Krempel aus dem Post-Shop mit MWSt. bezhahle ich immer bar,
{ # Briefmarken und Pakete immer mit Karte -- so komme ich nicht durcheinander
konto = "Porto"
steuersatz = 0
}
break
case "Steuerkasse Hamburg":
if (betrag < 0)
{
if (verwendungszweck ~ /VORAUSZAHLUNG/)
konto = "/Privatentnahmen" # Einkommensteuerzahlungen mache ich von meinem Geschäftskonto
else if (verwendungszweck ~ /UST 20[0-9][0-9]/)
konto = "Umsatzsteuerzahlungen an das Finanzamt" # USt-Zahlung
}
else
konto = "Umsatzsteuererstattungen des Finanzamts" # USt-Erstattung
break
default:
# Einnahmen und kein Bekannter Gegenkontoinhaber? Dann muss es wohl ein EC&T-Spender sein :)
if (betrag > 0)
{
# Spendenbeträge sind meist duch 5 teilbar, den Rest auf Schlüsselworte im Verwendungszweck checken
if (!(betrag % 5) || verwendungszweck ~ /EasyCash/ || verwendungszweck ~ /Spende/ || verwendungszweck ~ /Beitrag/ || verwendungszweck ~ /-AT-/)
{
konto = "Software-Spenden (Charityware)"
steuersatz = 7 # ermäßigter Steuersatz für Umsätze, die mit dem Urheberschutzgesetzt in Zusammenhang stehen
}
}
# sonstige Ausgaben sind meist mit 19% MWSt.; checke ich, wenn ich das Konto manuell zuweise
if (betrag < 0)
steuersatz = 19;
}
# Belegnummer aus Verwendungszweck herausfischen, so gut es geht
position = match(verwendungszweck, /R[0-9][0-9][0-9][0-9][0-9][^0-9]/)
if (position > 0)
{
belegnummer = substr(verwendungszweck, position, 6);
}
else
{
position = match(verwendungszweck, /RECHNUNG [0-9][0-9][0-9][0-9][0-9][^0-9]/)
if (position > 0)
{
belegnummer = "R" substr(verwendungszweck, position+9, 5);
}
else
{
position = match(verwendungszweck, /RE.NR. [0-9][0-9][0-9][0-9][0-9][^0-9]/)
if (position > 0)
{
belegnummer = "R" substr(verwendungszweck, position+6, 5);
}
}
}
# wegen Fließkommaungenauigkeiten nehmen wir lieber den ursprünglichen Betrag als Zeichenkette, ansonsten müssten wir noch in etwa sowas machen:
#betrag = sprintf("%.2f", betrag + 0.005); # auf 2 Stellen nach dem Komma kürzen, dabei kaufmännisch runden
#sub(/\./, ",", betrag); # jetzt den Dezimalpunkt wieder durchs Komma ersetzen
# Beschreibungstext aufbereiten
beschreibung = "\"" gegenkontoinhaber
beschreibung = beschreibung " / " verwendungszweck "\"" # verwendungszweck beginnt auch mit einem Anführungszeichen
betrieb = "Softwareentwicklung" # auf dem ING-Diba Konto laufen nur Zahlungen für meinen Haupt-Betrieb
bestandskonto = "ING Diba"
# Ausgabe der umgewandelten CSV-Zeile
print datum ";\"" betrag_mit_dezimalpunkt "\";" beschreibung ";" belegnummer ";" konto ";" steuersatz ";" betrieb ";" bestandskonto
# hochzählen für die Statistik
anzahl = anzahl + 1
}
END { print anzahl " Zeilen verarbeitet" > "/dev/stderr" } # so gibt man Status- oder Fehlermeldungen im Kommandozeilenfenster aus
Habe damit 120 Transaktionan eingelesen, nur eine davon brauchte eine manuelle Kontozuweisung...
Ich hab die Datei nochmal im Original angehängt, wo die Einrückungen erhalten geblieben sind.
Ein weiteres praktisches Skript-Beispiel findet sich in diesem Thread.
Im 8. Post gibt es auch ein paar Link-Tipps zu AWK.
Springe ins Forum:
Forensuche
Shoutbox
Du musst dich einloggen um eine Nachricht zu senden.
BernhardT
13.03.2026 11:36:50
Problem gelöst?
kkoefteg
11.03.2026 13:50:05
Vielen Dank.
BernhardT
11.03.2026 12:32:41
Stimmt der Pfad zum Datenverzeichnis?
Links oben auf das Programm-Icon klicken und dann ggf. das richtige Verzeichnis auswählen.
Besser einen Thread im Forum eröffnen.
kkoefteg
10.03.2026 22:06:14
Nach dem Update bekomme ich die Meldung „Software neu installiert“.
Die Software springt sofort zu Buchungsjahr und Währung.
Die Felder Unternehmen, Finanzamt usw. sind leer.
Die angelegten Konten
mielket
26.02.2026 18:29:38
Bei meinem kleinen GoBD-Tool war das Software-Signatur- zertifikat abgelaufen. Ich habe es auf der Download-Seite aktualisiert.
mielket
11.02.2026 14:10:50
Tut mir Leid, wenn immer noch nicht alle den Newsletter bekommen haben aber mein neuer Webspace-Provider hat den EMail-Versand auf 60 pro Stunde gedrosselt. Kann also noch bis zum Wochenende dauern...
fantes11
03.02.2026 11:48:14
Es funktioniert sehr gut. Wie immer. Danke.
mielket
30.01.2026 18:10:58
Kleines Update: Es fehlen nur noch die deutschen USt.-Erkl.- Formulare 2025 und 2026...
mielket
12.01.2026 13:32:16
@sternkieker Nein, ich lass mir Zeit damit. Die Frist bis 10. gilt überigens nur für USt.-Voanmeldungen -- die USt.-Erklärung kannst Du locker auch im Sommer machen.
Thomas R
07.01.2026 18:40:16
@Sternkieker Die USt-Erklärung 2025 sind im Grunde ja nur 2 Zahlen. Das kannst du schon elektronisch über Elster vornehmen.
sternkieker
07.01.2026 17:22:09
Besteht die Möglichkeit, dass das Formular Umsatzsteuererklär ung 2025 bis zum 10.1.26 online ist ??
Grüße aus Berlin
Sternkieker
hhoffmann
06.01.2026 20:33:25
@mielket Danke für die Info. Prima!
mielket
05.01.2026 12:08:57
Ein gutes Neues wünsche ich euch auch!
mielket
05.01.2026 12:07:59
@thomas_stahl schick mir mal einen screenshot. Wegen Datensicherungsopt ionen: Ist normal -- wähle einfach eine der Optionen; die drückt dann automatisch auf OK.
mielket
05.01.2026 12:05:10
@hhoffmann Im Verlaufe des Januar kommt das Formular-Update. Benutze bis dahin provisorisch das EÜR2024.