P2P-Kredite bei Portfolio Performance

Das Trennzeichen in deiner Datei ist ziemlich eindeutig ein Komma.

Ja das ist richtig. Aber weder von Mintos noch durch die Import_V1.8 Datei bekomme ich eine csv mit Trennzeichen Semikolon

image

Einfach bei der CSV Import das Trennzeichen von Semikolon auf Komma ändern

Das funktioniert ja leider auch nicht:

Hallo zusammen,

das Problem von CrusherXP ist, dass Mintos die Reports aktualisiert hat, und das Import-Tool nicht mehr ohne weiteres funktioniert. :slight_smile:

Mintos hat die Beschreibungen geändert, und zusätzlich teilen die die CSV Datei nun mit Kommata.
Da wir dies in dem Excel-Tool nicht auswählen können, wird dort die fehlerhafte Datei für PP erstellt, die dann natürlich nicht rein geladen werden kann.

@CrusherXP
das Problem lässt sich umgehen, wenn Du die exportierte CSV Datei von Mintos mit einem Text Editor öffnest, und alle Komma ggen ein Semikolon tauschst. :wink:

Das ist etwas umständlich, aber auf die schnelle klappt das.

VG

Moin,

ich habe mir die Mühe gemacht und mir zwei kleine Bash-Skripte geschrieben, die mir die XLSX von Swaper und die CSV von Neofinance so konvertieren, dass ich den CSV-Import in PP nutzen kann.

Für das Swaper-Skript sind die Python-Tools xlsx2csv und csvkit notwendig. Für das Neofinance-Skript verwende sed und auch csvkit. Es geht auch ohne sed. Doch dann müssen vorher die ersten drei Zeilen manuell entfernt werden.

Das ganze sieht dann für Swaper so aus:

#!/bin/bash

#This script convert xlsx of swaper account statement for csv import to portfolio performance.
#Just interests, withdrawals and fundings are converted to csv. But you can adjust this.
#This script use sed, the python tools xlsx2csv and csvkit it must be installed.
#Usage: ./script.sh downloaded-statement.xlsx

# Array with strings to find inside of origin xlsx
arrFind=(INTEREST WITHDRAWAL FUNDING)
# Array with columns of origin xlsx for search and copy
arrColOrigin=("Transaction type" "Booking date" "Amount")
# Arrays with columns and values which are nessecary & useful for csv import in pp
arrColNew=(Typ Wert Datum)
arrValNew=(Zinsen Entnahme Einlage)
# Array with helper files and at least final output file
arrFile=("interest.csv" "withdrawal.csv" "funding.csv" "out.csv" "swaper.csv")

for i in {0..2}
do
	#For loop references variables inside of arrays i.e. interest -> Zinsen -> interest.csv
	#should on same position inside of the different arrays.
	
	#Scheme: Convert input xlsx to csv | find inside of selected column, selected string |
	#cut selected columns |
	#add new column (type) with selected value for each row > write to file
	xlsx2csv "$1" | csvgrep -c "${arrColOrigin[0]}" -m "${arrFind[i]}" | 
		csvcut -c "${arrColOrigin[1]}","${arrColOrigin[2]}" | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[i]}" > "${arrFile[i]}"
done

# Merge separately helper files to one file
csvstack "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" > "${arrFile[3]}"
# Adjust head row | format delimiter > write to final output file
csvsql --query "select [${arrColOrigin[1]}] as "${arrColNew[2]}", "${arrColNew[0]}", \
					"${arrColOrigin[2]}" as "${arrColNew[1]}" \
					from ${arrFile[3]::-4}" "${arrFile[3]}" | 
				csvformat -D ";" > "${arrFile[4]}"
#Remove helper files.
rm "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}"

Und für Neofinance sieht das so aus:

#!/bin/bash

#This script convert xlsx of swaper account statement for csv import to portfolio performance.
#Just interests, fees, tax, withdrawals and fundings are converted to csv. But you can adjust this.
#This script use sed and the python tool csvkit it must be installed.
#Usage: ./script.sh downloaded-statement.xlsx

# Array with strings to find inside of origin xlsx
arrFind=("palūkanų grąžinimas" "Money transfer" "Money deposit" "GPM" "vėlavimo palūkanų grąžinimas" "banką mokestis")
# Array with columns of origin xlsx for search and copy
arrColOrigin=("Payment purpose" "Date" "Turnover")
# Arrays with columns and values which are nessecary & useful for csv import in pp
arrColNew=(Typ Wert Datum)
arrValNew=(Zinsen Entnahme Einlage Steuern Zinsen Gebühren)
# Array with helper files and at least final output file
arrFile=("interest.csv" "withdrawal.csv" "funding.csv" "tax.csv" "delayed.csv" "fee.csv" "out.csv" "neofiance.csv")

#Remove first three rows of csv.
sed '1,3d' "$1" > "${arrFile[6]}"

for i in {0..5}
do
	#For loop references variables inside of arrays i.e. interest -> Zinsen -> interest.csv
	#should on same position inside of the different arrays.
	
	#Scheme: Convert input xlsx to csv | find inside of selected column, selected string |
	#cut selected columns |
	#add new column (type) with selected value for each row > write to file
	csvgrep -c "${arrColOrigin[0]}" -m "${arrFind[i]}" "${arrFile[6]}" | 
		csvcut -c "${arrColOrigin[1]}","${arrColOrigin[2]}" | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[i]}" > "${arrFile[i]}"
done

# Merge separately helper files to one file
csvstack "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}" "${arrFile[4]}" "${arrFile[5]}" > "${arrFile[6]}"
# Adjust head row | format delimiter > write to final output file
csvsql --query "select [${arrColOrigin[1]}] as "${arrColNew[2]}", "${arrColNew[0]}", \
					"${arrColOrigin[2]}" as "${arrColNew[1]}" \
					from ${arrFile[6]::-4}" "${arrFile[6]}" | 
				csvformat -D ";" > "${arrFile[7]}"
#Remove helper files.
rm "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}" "${arrFile[4]}" "${arrFile[5]}" "${arrFile[6]}"

Beim CSV-Import muss für beide Dateien das Format der Spalte Datum auf “JJJJ-MM-TT” und der Spalte Wert auf “0,000.00” umgestellt werden. Ich hatte noch keine sinnvolle Idee, dass ohne großene Aufwand umzuschreiben. Und das Format auf locale de_DE umzuschreiben, gibt m.E. das csvkit-Tool nicht her.

Vielleicht hilft es den einen oder andern weiter.

1 Like

@Forenadmins
Sorry, für den Doppelpost. Ich habe zwar das Bearbeiter-Abzeichen, bin aber zu doof die Bearbeitungsfunktion aufzurufen.

Weitere Skripte nach den selben Schema:

Mintos:

#!/bin/bash

#This script convert xlsx of swaper account statement for csv import to portfolio performance.
#Just interests, fees, tax, withdrawals and fundings are converted to csv. But you can adjust this.
#This script use the python tool csvkit it must be installed.
#Usage: ./script.sh downloaded-statement.xlsx

# Array with strings to find inside of origin xlsx
arrFind=("Zins" "Abhebung" "Eingehende Zahlungen" "Verzugsgebühren" "Servicegebühr")
# Array with columns of origin xlsx for search and copy
arrColOrigin=("Einzelheiten" "Datum" "Umsatz")
# Arrays with columns and values which are nessecary & useful for csv import in pp
arrColNew=(Typ Wert Datum)
arrValNew=(Zinsen Entnahme Einlage Zinsen Gebühren)
# Array with helper files and at least final output file
arrFile=("interest.csv" "withdrawal.csv" "funding.csv" "delayed.csv" "fee.csv" "out.csv" "mintos.csv")

for i in {0..4}
do
	#For loop references variables inside of arrays i.e. interest -> Zinsen -> interest.csv
	#should on same position inside of the different arrays.
	
	#Scheme: Convert input xlsx to csv | find inside of selected column, selected string |
	#cut selected columns |
	#add new column (type) with selected value for each row > write to file
	csvgrep -c "${arrColOrigin[0]}" -m "${arrFind[i]}" "$1" | 
		csvcut -c "${arrColOrigin[1]}","${arrColOrigin[2]}" | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[i]}" > "${arrFile[i]}"
done

# Merge separately helper files to one file
csvstack "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}" "${arrFile[4]}" > "${arrFile[5]}"
# Adjust head row | format delimiter > write to final output file
csvsql --query "select [${arrColOrigin[1]}] as "${arrColNew[2]}", "${arrColNew[0]}", \
					"${arrColOrigin[2]}" as "${arrColNew[1]}" \
					from ${arrFile[5]::-4}" "${arrFile[5]}" | 
				csvformat -D ";" > "${arrFile[6]}"
#Remove helper files.
rm "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}" "${arrFile[4]}" "${arrFile[5]}"

Viainvest:

#!/bin/bash

#This script convert xlsx of swaper account statement for csv import to portfolio performance.
#Just interests, withdrawals and fundings are converted to csv. But you can adjust this.
#This script use sed, the python tools xlsx2csv and csvkit it must be installed.
#Usage: ./script.sh downloaded-statement.xlsx

# Array with strings to find inside of origin xlsx
arrFind=("Zinsbetrag" "eingezahlten Mittel" "ausgezahlten Mittel")
# Array with columns of origin xlsx for search and copy
arrColOrigin=("Transaktionsart" "Transaktionsdatum" "Kredit (€)" "Debit (€)")
# Arrays with columns and values which are nessecary & useful for csv import in pp
arrColNew=(Typ Wert Datum)
arrValNew=(Zinsen Einlage Entnahme)
# Array with helper files and at least final output file
arrFile=("interest.csv" "funding.csv" "withdrawal.csv" "out.csv" "viainvest.csv")

for i in {0..1}
do
	#For loop references variables inside of arrays i.e. interest -> Zinsen -> interest.csv
	#should on same position inside of the different arrays.
	
	#Scheme: Convert input xlsx to csv | find inside of selected column, selected string |
	#cut selected columns |
	#add new column (type) with selected value for each row > write to file
	xlsx2csv "$1" | csvgrep -c "${arrColOrigin[0]}" -m "${arrFind[i]}" | 
		csvcut -c "${arrColOrigin[1]}","${arrColOrigin[2]}" | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[i]}" > "${arrFile[i]}"
done

xlsx2csv "$1" | csvgrep -c "${arrColOrigin[0]}" -m "${arrFind[2]}" | 
	csvcut -c "${arrColOrigin[1]}","${arrColOrigin[3]}" | 
	csvstack -n "${arrColNew[0]}" -g "${arrValNew[2]}" > "${arrFile[3]}"

csvsql --query "select [${arrColNew[0]}], [${arrColOrigin[1]}], \
					[${arrColOrigin[3]}] as [${arrColOrigin[2]}] \
					from ${arrFile[3]::-4}" "${arrFile[3]}" | csvformat > "${arrFile[2]}"

# Merge separately helper files to one file
csvstack "${arrFile[0]}" "${arrFile[1]}" "out2.csv" > "${arrFile[3]}"
#csvstack "${arrFile[0]}" "${arrFile[1]}" > "${arrFile[3]}"
# Adjust head row | format delimiter > write to final output file
csvsql --query "select [${arrColOrigin[1]}] as [${arrColNew[2]}], [${arrColNew[0]}], \
					[${arrColOrigin[2]}] as [${arrColNew[1]}] \
					from ${arrFile[3]::-4}" "${arrFile[3]}" | 
				csvformat -D ";" > "${arrFile[4]}"
#Remove helper files.
rm "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}"

Twino:

#!/bin/bash

#This script convert xlsx of swaper account statement for csv import to portfolio performance.
#Just interests, withdrawals and fundings are converted to csv. But you can adjust this.
#This script use sed, the python tools xlsx2csv and csvkit it must be installed.
#Usage: ./script.sh downloaded-statement.xlsx

arrFind=(INTEREST FUNDING)
varColNrDescr=4
varColNrType=3
varColNrDate=1
varColNrAmount=6
varDiff="-" #Difference between withdrawal and funding is just negative and positive Amount
arrColOrigin=("Description" "Processing Date" "Amount, EUR")
# Arrays with columns and values which are nessecary & useful for csv import in pp
arrColNew=(Typ Wert Datum)
arrValNew=(Zinsen Entnahme Einlage)
# Array with helper files and at least final output file
arrFile=("interest.csv" "withdrawal.csv" "funding.csv" "out.csv" "twino.csv")

xlsx2csv "$1" > "${arrFile[0]}"
sed '1,2d' "${arrFile[0]}" > "${arrFile[3]}"

csvgrep -c $varColNrDescr -m "${arrFind[0]}" "${arrFile[3]}" | csvcut -c $varColNrDate,$varColNrAmount | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[0]}" > "${arrFile[0]}"
		
csvgrep -c $varColNrType -m "${arrFind[1]}" "${arrFile[3]}" | csvgrep -c 6 -m "$varDiff" |
		csvcut -c $varColNrDate,$varColNrAmount | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[1]}" > "${arrFile[1]}"
		
csvgrep -c $varColNrType -m "${arrFind[1]}" "${arrFile[3]}" | csvgrep -i -c 6 -m "$varDiff" |
		csvcut -c $varColNrDate,$varColNrAmount | 
		csvstack -n "${arrColNew[0]}" -g "${arrValNew[2]}" > "${arrFile[2]}"
		
csvstack "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" > "${arrFile[3]}"

csvsql --query "select [${arrColOrigin[1]}] as "${arrColNew[2]}", "${arrColNew[0]}", \
					[${arrColOrigin[2]}] as "${arrColNew[1]}" \
					from ${arrFile[3]::-4}" "${arrFile[3]}" | 
				csvformat -D ";" > "${arrFile[4]}"

rm "${arrFile[0]}" "${arrFile[1]}" "${arrFile[2]}" "${arrFile[3]}"
2 Likes

Hallo @keijko
Wie wäre es, wenn du dir einen GitHub-Account erstellst und dort deine Scripte veröffentlicht, als das Forum mit Source zu fluten. Zum einen kannst du da Updates machen und andere könnten Ergänzungen einstellen.
Das Forum ist nach meinem Verständnis ein Gesprächsforum und keine Source-Austauschplattform.
Dann kannst du einen Wiki-Eintrag machen mit der Verlinkung zu deinen Sources und gut ist.
Meine Meinung… :face_with_monocle:

Grüße Alex

2 Likes

Servus,
nutze neuerdings Bondora, EstateGuru und Mintos.
Hab mir gerade in linux ein kleines Bash Skript geschrieben, welches die monatlichen Downloads der verschiedenen Plattformen von meiner Download Folder einliest, umbennent und ablegt. Nun müsste ich wohl die Tabellen für EstateGuru und Mintos entsprechend konvertieren. Für Mintos hab ich da bereits eine Excel Vorlage gesehen. Hat sich schon jemand ein Skript für so eine Aufgabe geschrieben und mag das teilen? Gäbe es Interesse daran, dass ich entsprechende python Skripte erstelle und veröffentliche?

Viele Grüße
Inco

Das hier könnte dir helfen: GitHub - ChrisRBe/PP-P2P-Parser: Parser für P2P Anbieter Mintos.com für Portfolio Performance</t

2 Likes

Super, vielen Dank!
Evtl. kann ich damit auch estateguru erschlagen.

Hallo incoggnito, hast du das Skript für Estateguru angepasst oder wie hast du es anders für dich gelöst?

Hat jemand nur eine json config für mintos excel bzw csv import?

habe ich eben versucht meine estategurur csv einzulesen mit dem excelmakro.
doch bei mir kommt da leider nur müll raus. obwohl die csv eigentlich ok aussieht…

"ID";"Secondary Market";"Loan Code";"Payment Date";"Confirmation Date";"Cash Flow Type";"Cash Flow Status";"Project Name";"Amount";"Balance";"Currency"
"1ff439f5-77ea-4aad-be34-6fb3bce8db29";"";"FI1267";"30.12.2022 03:00";"31.12.2022 05:00";"Penalty";"Approved";"#1267 Überbrückungskredit (Finnland)";"0.33";"46.55";"EUR"

ich habe das mintos script von @ChrisRBe amgepasst.

das format passt nun, aber das problem ist das der PP importer die vielen nachkommastellen falsch beim import interpretiert. siehe screenshot


Die meisten Einträge wären korrekt interpretiert 0,00; insofern sehe ich nicht, wie dir das viel weiterhelfen würde.

Hallo @flod85,

ich empfehle Dir die Mintos Zinsen mit dem von Dir genannten Skript auf Monats-Basis zu aggregieren.

Viele Grüße

Thomas

2 Likes

Hi @flod85,

die Ursache für das fiese Verhalten von Portfolio Performance ist eine Mischung aus ungeschickter Implementierung in meinem Skript und den Localisation Einstellungen in PP.

Könntest du bitte den Import nochmal probieren, wenn du in PP folgende Einstellung in dem Import-Fenster änderst?

Im Importfenster auf die “Wert”-Spaltenüberschrift doppel klicken

image

Das sollte ein neues Fenster öffnen, in dem du das Format der Spaltenzuordnung ändern kannst.
Wähle hier das englische Format “0,000.00” aus. Klicke OK und klicke auf “Weiter”. Die Werte sollten jetzt korrekt importiert/umgewandelt werden.

Ich hoffe, das hilft dir ein bisschen weiter.

3 Likes

danke @ChrisRBe und @Thomas12 beide tipps waren sehr hilfreich. damit sieht es nun deutlich besser aus.

ich habe noch leichte abweichungen in den beträge, da muss ich nochmal schauen woher die kommen.

  1. Kontoauszug in englisch runterladen. → Login | Mintos
  2. aggregieren auf monatlich
  3. beim import auf englisches Format und UTF8 achten.

1 Like

Hallo @Mistel
Besteht mittlerweile die Möglichkeit, das du die .pbix mit Beispiel Daten irgendwo hochladen könntest? Hätte da auch starkes Interesse, um mir ein Dashboard aufzubauen. Und so könnte man sich das ein oder andere schonmal abgucken :slight_smile:

Danke vorab :slight_smile: