Gunnar Mahnke-Sun Posted July 17 Share Posted July 17 (edited) Hallo liebe Community, ich habe Daten zur Lebensdauer von technischen Anlagen gesammelt und möchte nun durch Auswahl der Anlagenklasse und Erfassung des Baujahres in der smap die restliche Lebensdauer in Jahren berechnen. Formel aus meinen Überlegungen: übrige Lebensdauer = wenn (Technische Lebensdauer -(Letzte 4 Zeichen von Zeitstempel - Baujahr) > 0 dann Technische Lebensdauer -(Letzte 4 Zeichen von Zeitstempel - Baujahr) sonst "überschritten") Formel in smapone: IF(GREATERTHAN({DataRecordSelect_Anlage[Technische Lebensdauer]}-(SUB(2024, {Number_Baujahr}))),0), {DataRecordSelect_Anlage[Technische Lebensdauer]}-(SUB(2024, {Number_Baujahr})), "überschritten") Problem: Die Formel konnte nicht verarbeitet werden. Außerdem würde ich gerne das Baujahr aus dem zeitstempel ermitteln, aber die Formel RIGHT() erwartet Text. Wenn ich jetzt Timestamp mit TEXT() in Text umwandle, kann die Formel SUB() nicht mehr ausgeführt werden, weil hier wieder eine Zahl notwendig ist. Hat jemand eine elegantere Lösung? Wie habt ihr das aktuelle Jahr ermittelt? Ich würde mich sehr freuen. Im Moment füge ich erstmal die statische Zahl 2024 ein, um ein Problem weniger zu haben. Liebe Grüße, Gunnar Edited July 17 by Gunnar Mahnke-Sun genauere Beschreibung 2 Link to comment Share on other sites More sharing options...
Solution David Susami Posted July 17 Solution Share Posted July 17 (edited) Hallo Gunnar, erstmal hast du in deiner Formel eine Klammer zu viel. Habe dies korrigiert und unten niedergeschrieben. Nun zu deinem Timestamp Problem. Gibt es einen spezifischen Grund weshalb Zeitstempel genutzt werden? Evtl. ist man in der Ausführung sogar schneller, wenn man das Baujahr (die 4 Ziffern) eintippen lässt. Alternativ kannst du mit SUB_PERIOD berechnen lassen. IF(GREATERTHAN({DataRecordSelect_Anlage[Technische Lebensdauer]}, SUB(2024, {Number_Baujahr}), 0), {DataRecordSelect_Anlage[Technische Lebensdauer]}, SUB(2024, {Number_Baujahr}), "überschritten") Edited July 18 by David Susami Formelfehler korrigiert 1 1 1 Link to comment Share on other sites More sharing options...
Manuel Rühl Posted July 18 Share Posted July 18 Rechnen mit Zeiten, mein Lieblingsthema... 😉 @Gunnar Mahnke-Sun Das was du vorhast ist nachvollziehbar, funktioniert nur so leider nicht. Die Datentypen sind da zu unflexibel. Am ehesten kommt da noch die Lösung von @David Susami ran. Das setzt aber voraus, dass du daran denkst, das Jahr in der Formel nächstes Jahr auf 2025 zu setzen. Wenn man das Baujahr per Hand eingibt, muss auch das aktuelle Jahr als Zahleneingabe erfasst werden. Wenn man das Jahr per Timestamp erfasst, muss auch das Baujahr als Timestamp erfasst werden mit Uhrzeit. 1 Link to comment Share on other sites More sharing options...
Gunnar Mahnke-Sun Posted July 18 Author Share Posted July 18 Ein Fehler war anscheinend auch, dass ich ein "-" verwendet habe. Hier habe ich jetzt auch auf Sub umgestellt, aber dann wird mir die Formel immer noch als unvollständig angezeigt. IF(GREATERTHAN(a,0), a, "überschritten") a = SUB({DataRecordSelect_Anlage[Technische_Lebensdauer]},(SUB(2024, {Number_Baujahr}))) Entweder habe ich ein Brett vor dem Kopf, oder ich komme so wirklich nicht ans Ziel. Ich werde es mir jetzt einfach machen und nur die Technische Lebensdauer in die Smap integrieren. Das weiterverarbeiten dieser Information mache ich dann in PowerQuery. Vielen Dank für die Verbesserungsvorschläge! Link to comment Share on other sites More sharing options...
Manuel Rühl Posted July 18 Share Posted July 18 Ich vermute, dass da noch ein TEXT um a rum muss. Aber nicht innerhalb des GREATERTHAN sondern in die then-condition: IF(GREATERTHAN(a,0), TEXT(a), "überschritten") 1 Link to comment Share on other sites More sharing options...
Gunnar Mahnke-Sun Posted July 18 Author Share Posted July 18 vor 3 Minuten schrieb Manuel Rühl: Ich vermute, dass da noch ein TEXT um a rum muss. Aber nicht innerhalb des GREATERTHAN sondern in die then-condition: IF(GREATERTHAN(a,0), TEXT(a), "überschritten") Leider hat das nicht geholfen. 🙂 1 Link to comment Share on other sites More sharing options...
Gunnar Mahnke-Sun Posted July 18 Author Share Posted July 18 Wäre echt klasse, wenn die Fehlermeldung etwas spezifischere Hinweise gibt, damit man gezielter korrigieren kann. 🤔 1 Link to comment Share on other sites More sharing options...
Manuel Rühl Posted July 18 Share Posted July 18 Dann mach mal die Klammern bei dem zweiten SUB() weg: SUB({DataRecordSelect_Anlage[Technische_Lebensdauer]},SUB(2024, {Number_Baujahr})) 1 Link to comment Share on other sites More sharing options...
Gunnar Mahnke-Sun Posted July 18 Author Share Posted July 18 Das hat etwas gebracht. Die Funktion "SUB" erwartet einen Wert vom Typ Zahl. Das bedeutet wohl, dass ich nicht mit Zahlen aus einem DSAB rechnen kann, weil diese als Text verstanden werden? Link to comment Share on other sites More sharing options...
David Susami Posted July 18 Share Posted July 18 (edited) Doch es kann mit Zahlen aus einer DSAB gerechtet werden. Setzt jedoch voraus, dass die Spalte des DSAB auch als Zahl formatiert ist. Siehe angehängten Screenshot. Dies kannst du beim Hochladen der Excel in der Vorschau auswählen. Danach leider nicht mehr. Wäre evtl. ein Feature-Wunsch. 😛 Nachtrag: Die Spalte kann nicht als Zahl formatiert werden, wenn darin Zeichen enthalten sind, die nicht als Zahl gelten. Also falls du hier auf Probleme stößt ist dies höchstwahrscheinlich die Fehlerquelle. Ansonsten den einfachen Weg gehen und die Spalte in Excel im Vorfeld als Zahl formatieren, das macht es später einfacher. Edited July 18 by David Susami Nachtrag 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now