Registriert seit: 08.11.2017
Version(en): MS Office 2013 Professional
Hallo,
das mit der Kalenderwoche geht auch in Access direkt in einer Abfrage.
Beispiel mit den Feldern [KW_NR] und [KW_JAHR] :
Die Umsetzung der zuletzt genannten Excel-Formel für den KW-Montag lautet dann
=7*Round(CDate(7 & 1-[KW_JAHR])/7+[KW_NR];0)+177
bzw. mit der Integer-Division, die Excel (noch) nicht kann
=7*(CDate(7 & 1-[KW_JAHR])\7+[KW_NR])+184
Das Ergebnisfeld sollte als "Short Date" formatiert sein.
Viele Grüße, Frank
Registriert seit: 13.04.2014
Version(en): 365
Hi,
und was willst Du uns damit sagen?
sieh mal:
http://excelformeln.de/formeln.html?welcher=186Integerdivision in Excel:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| F |
6 | 2 |
Zelle | Formel |
F6 | =KÜRZEN(15/7;) |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 08.11.2017
Version(en): MS Office 2013 Professional
08.11.2017, 15:25
(Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2017, 16:01 von Amos.
Bearbeitungsgrund: weitere Präzisierung
)
Hallo Edgar,
Ich ging hier nach meiner Neuanmeldung so vor mich hin ...
und davon aus: ich bin hier im MSAccess-Areal des Forums und sah eine Excel-Formel als finalen und vor allem falschen Lösungsvorschlag für ein Access-Problem und der Thread wurde geschlossen.
Zu Deiner Frage, was ich "Euch" sagen möchte: In MSAccess (wie auch VB, VBA und auch MSQuery) ist der Backslash als Operator für eine spezielle Integer-Division einsetzbar.
Dafür ist dort kein Funktionsaufruf nötig. Dividend, Divisor und Quotient werden bei der Integer-Division ganzzahlig gerundet.
Excel kennt die '\'-Division nicht, diese Funktionalität muss man mit Rundungsfunktionen "nachbauen".
Wenn man solche Excel-Formeln dann auf MsAccess lediglich 1:1 adaptiert, verschenkt man dort die Möglichkeit, das '\'-Feature einzusetzen.
=7*(CDate(8 & 1-[KW_JAHR])\7+[KW_NR])+149
Zu Deinem Beispiel: Das ist nicht die Integer-Division, wie sie die vorher genannten Programme kennen.
KÜRZEN ist bei diesem Nachbauen in Excel zudem ein Wackelkandidat, weil er nicht wie GANZZAHL funktioniert.
KÜRZEN hat zudem in ACCESS keine Entsprechung, dafür korrespondieren GANZZAHL(XL) und INT (ACCESS)
Bei negativen Zahlen wird bei KÜRZEN ganzzahlig aufgerundet, bei positiven abgerundet. GANZZAHL rundet immer ab.
In Access gibt es zudem negative Datumswerte bis ins Jahr 100 zurück. Access kennt auch keinen 29.02.1900
Bei der Übertragung von Excel-Formeln nach ACCESS muss daher bei Datumsberechnungen genau aufgepasst werden.
Das habe ich vorhin nicht getan, daher die neue und hoffentlich richtige Variante.
Und zuguterletzt: Excel hat eine andere interne Rechengenauigkeit als Access, machmal merkt man das sogar.
Bei der Verwendung des mod-Operators treten bei den genannten Programmen übrigens ähnliche Rundungseffekte auf. Die REST-Funktion in Excel rundet dagegen nicht.
Viele Grüße, Frank
Registriert seit: 13.04.2014
Version(en): 365
Hi,
Excel kennt die Integer-Division sehr wohl, allerdings nur in VBA.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.