Ergebnis einer in Excel hinterlegten Formel lesen (Kombination (Wenn/dann und SVERWEIS)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo zusammen,

ich stehe mal wieder vor einem Excel-Python-Problem und hoffe ihr könnt mir helfen.
Ich arbeite unter Windows.

In einer Excel-Zelle steht folgende Bedingung(Minimalbeispiel):

Code: Alles auswählen

=WENN(A1=1;SVERWEIS(A1;J2:K2;2;FALSCH);"-")
Wenn ich die Datei öffne, dann steht in der Zelle B2 ein Wert von 20.
Folgender Python-Code gibt mir aber "None" aus:

Code: Alles auswählen

import xlwings as xw
from pathlib import Path

EXCEL_FILE = Path(r"C:\Users\dennis\Documents\Test.xlsx")
SHEET_NAME = "Tabelle1"
CELL_TO_READ = "B1"


def read_excel_file(filename):
    with xw.App() as excel_app:
        excel_app.visible = False
        workbook = excel_app.Book.open(
            filename,
            read_only=True,
        )
        worksheet = workbook.sheets[SHEET_NAME]
        return worksheet.range(CELL_TO_READ).value


def main():
    print(read_excel_file(EXCEL_FILE))


if __name__ == "__main__":
    main()
Ich habe die Excel-Datei extra neu erstellt um sicher zu gehen, dass da nicht sonst noch irgenwelche Bedingungen vorhanden sind.
Wenn ich die "Wenn-Dann" -Abfrage rausnehme und nur den SVERWEIS drin lasse, dann funktioniert das Auslesen. Leider sind das eine Unmengen an Excel-Dateien, wenn ich die händisch bearbeite, dann könnte ich auch gleich die Wert die mich interessieren rausscheiben.(Und ich wäre dieses Jahr beschäftigt)

Als erstes hatte ich es mit "Openpyxl" versucht, da das ein "data_only"-Argument hat, aber wenn ich das mit True angebe, bekomme ich die Werte auch nicht. Dann habe ich mich erinnert, das ich sowas ähnliches mal mit "xlwings" gemacht habe und darauf stoßt man auch im Netz. Aber irgendwie will es nicht wirklich.

Würde mich sehr freuen, wenn einer von euch einen Hinweis für mich hätte.

Vielen Dank vorab.

(sonnige) Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Guten Abend,

ich wollte nur kurz Rückmeldung geben. Das Problem direkt konnte ich nicht lösen, aber ich habe nun einfach die WENN-DANN-SVERWEIS-Bedingung in Python nachprogrammiert und habe mir so den entsprechenden Wert geholt. Dafür bin ich auch auf openpyxl umgestiegen, damit lief der Code wesentlich schneller durch, wie mit xlwings.


Viele Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hilft dir das weiter?
https://stackoverflow.com/a/53787976

Ich will nicht behaupten, dass der Programmierstil allzu toll ist, aber vielleicht ja ein Ansatz...
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

danke für die Antwort.
Ja "pycel" hilft in dem Fall tatsächlich. Ich hatte den Thread auch angeschaut, ich muss zugeben ich war etwas fokusiert auf ein Argument, das ich vielleicht nur vergessen habe zu setzen. Ist vielleicht auch etwas dem Zeitdruck geschuldet gewesen. Aber jetzt kann ich den Code mal in Ruhe umbauen, das ich für die Zukunft gerüstet bin. (Dann habe ich sicherlich eine Formel, die pycel nicht unterstützt 😄)

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hier ist ein Überblick von verschiedenen Excel-Bibliotheken und was die jeweils an Funktionen unterstützen:

https://github.com/bradbase/xlcalculato ... -functions

Natürlich alles ohne Gewähr.

Für die Namen musst du dir dann noch die deutschen Entsprechungen raus suchen. Je nachdem, was dich interessiert. SVERWEIS ist wohl VLOOKUP.

Hier werden etliche Übersetzungen der Excel-Funktionen angeboten:

https://de.excelfunctions.eu/
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Guten Morgen,

vielen Dank, das ist ja echt cool. Wird gleich gespeichert :)


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten