86 lines
3.0 KiB
Python
86 lines
3.0 KiB
Python
import openpyxl
|
|
|
|
file_path = 'Kopie von Kostenrechnung der Nächsten jahre (3).xlsx'
|
|
wb = openpyxl.load_workbook(file_path, data_only=True)
|
|
sheet = wb['Tilgung bei Gleichbleibenden Be']
|
|
|
|
print('=== ENDGÜLTIGE KREDIT-ANALYSE APRIL 2026 ===')
|
|
print()
|
|
|
|
# KREDIT 1: DSL Bank (Spalte 9)
|
|
dsl_rest = sheet.cell(189, 9).value
|
|
dsl_rate = sheet.cell(189, 10).value
|
|
print('KREDIT 1: DSL Bank')
|
|
print(f' Spalte: 9 (Restschuld), 10 (Rate)')
|
|
print(f' Restschuld Apr 2026: {dsl_rest:,.2f} €' if dsl_rest else ' Restschuld: None')
|
|
print(f' Monatsrate: {dsl_rate} €' if dsl_rate else ' Rate: None')
|
|
print()
|
|
|
|
# KREDIT 2: PSD Nord (Spalte 13)
|
|
psd_rest = sheet.cell(189, 13).value
|
|
psd_rate = sheet.cell(189, 14).value
|
|
print('KREDIT 2: PSD Nord')
|
|
print(f' Spalte: 13 (Restschuld), 14 (Rate)')
|
|
print(f' Restschuld Apr 2026: {psd_rest:,.2f} €' if psd_rest else ' Restschuld: None')
|
|
print(f' Monatsrate: {psd_rate} €' if psd_rate else ' Rate: None')
|
|
print()
|
|
|
|
# KREDIT 3: Zingelstr. 14 - Sparkasse (Spalten 20, 21, 28)
|
|
print('=== ZINGELSTR. 14 ANAYLSE ===')
|
|
print()
|
|
|
|
# Wie interpretieren wir die Daten?
|
|
# Option 1: Zingelstr. 14 = 1 Kredit, Sparkasse = Header
|
|
# Option 2: Zingelstr. 14 ist ein Überbegriff, Sparkasse und DSL sind 2 Kredite
|
|
|
|
zingel_rest = sheet.cell(189, 20).value
|
|
sparkasse_rate = sheet.cell(189, 21).value
|
|
sparkasse_zins = sheet.cell(189, 22).value
|
|
|
|
print('Spalte 20 (Zingelstr. 14):')
|
|
print(f' Restschuld: {zingel_rest:,.2f} €' if zingel_rest else ' Restschuld: None')
|
|
print()
|
|
|
|
print('Spalte 21 (Sparkasse):')
|
|
print(f' Rate: {sparkasse_rate} €')
|
|
print()
|
|
|
|
print('Spalte 28 (kein Header):')
|
|
val28 = sheet.cell(189, 28).value
|
|
print(f' Wert: {val28:,.2f} €' if val28 else ' Wert: None')
|
|
print()
|
|
|
|
# PRÜFUNG: Ist Spalte 28 = Zingelstr.14 - Sparkasse Restschuld?
|
|
print('=== MATHEMATISCHE PRÜFUNG ===')
|
|
sum_check = (dsl_rest or 0) + (psd_rest or 0) + (zingel_rest or 0)
|
|
gesamt = sheet.cell(189, 24).value
|
|
|
|
print(f'DSL (9) + PSD (13) + Zingel (20) = {sum_check:,.2f} €')
|
|
print(f'Gesamt (24) = {gesamt:,.2f} €')
|
|
print(f'Differenz = {gesamt - sum_check:,.2f} €')
|
|
|
|
# Zingelstr.14 + Spalte 28
|
|
sum_check2 = (dsl_rest or 0) + (psd_rest or 0) + (zingel_rest or 0) + (val28 or 0)
|
|
print(f'\\nDSL (9) + PSD (13) + Zingel (20) + Col28 = {sum_check2:,.2f} €')
|
|
print(f'Das passt zu Gesamt (24)!' if abs(sum_check2 - gesamt) < 0.01 else f'Passt nicht: Differenz {sum_check2 - gesamt}')
|
|
print()
|
|
|
|
print('=== ERGEBNIS ===')
|
|
print('Es gibt 4 aktive Kredite im April 2026:')
|
|
print()
|
|
print('1. DSL Bank (Spalte 9)')
|
|
print(f' Restschuld: {dsl_rest:,.2f} €')
|
|
print(f' Rate: {dsl_rate} €')
|
|
print()
|
|
print('2. PSD Nord (Spalte 13)')
|
|
print(f' Restschuld: {psd_rest:,.2f} €')
|
|
print(f' Rate: {psd_rate} €')
|
|
print()
|
|
print('3. Zingelstr. 14 - DSL (Spalte 20) - oder Gesamt für Zingelstr?')
|
|
print(f' Restschuld: {zingel_rest:,.2f} €')
|
|
print(f' Rate: unbekannt (nicht in Spalten 21/22)')
|
|
print()
|
|
print('4. Sparkasse (Spalte 28 - Restschuld, Spalte 21 - Rate)')
|
|
print(f' Restschuld: {val28:,.2f} €')
|
|
print(f' Rate: {sparkasse_rate} €')
|