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} €')