Entspricht der NETWORKDAYS-Funktion von Excel mit Jet ADO

7315
Lunatik

Gibt es eine Möglichkeit, die NETWORKDAYS von Excel zu replizieren, wenn Sie über ADO eine Verbindung zu einer Jet-Datenbank herstellen?

3
das kann nicht mit einer Prämie bewegt werden. Es tut uns leid. :( Jeff Atwood vor 14 Jahren 0
Ich schlage vor, dies auf SO mit mehr Hintergrund-Erklärung zu fragen - was macht NETWORKDAYS? Jeff Atwood vor 14 Jahren 0
Prost, dachte die Kopfgeld könnte die Dinge stören. Lunatik vor 14 Jahren 0
NETWORKDAYS ist eine Funktion aus dem Analysis ToolPak-Add-In. Es gibt die Anzahl der gesamten Arbeitstage zwischen einem Start- und Enddatum zurück. Wochenenden und an Feiertagen festgelegte Daten, die Sie als Argument angeben müssen, sind davon ausgeschlossen. Die Funktionssignatur lautet NETWORKDAYS (start_date, end_date, holidays) ` DaveParillo vor 14 Jahren 1

2 Antworten auf die Frage

5
JDunkerley

Wenn wir davon ausgehen, dass sowohl Anfang als auch Ende Wochentage sind, denke ich, dass dies funktioniert:

([DateEnd]-([DateStart]+(Weekday([DateEnd])-Weekday([DateStart]))))/7*5+(Weekday([DateEnd])-Weekday([DateStart]))+1 
  • Anzahl der Wochen zwischen Datum und Uhrzeit um 5 ausarbeiten.
  • Differenz des Wochentags hinzufügen
  • Fügen Sie eine hinzu, um sowohl Anfang als auch Ende hinzuzufügen

Wenn Sie nicht wissen, dass beide Arbeitstage sind, benötigen Sie eine Korrektur. Ich denke das ist richtig:

([DateEnd]-([DateStart]+(Weekday([DateEnd])-Weekday([DateStart]))))/7*5+(Weekday([DateEnd])-Weekday([DateStart]))+1+IIf(Weekday([DateEnd])=7,-1,0)+IIf(Weekday([DateStart])=1,-1,0) 

Ich habe es gegen Excel getestet und scheint die richtige Antwort zu geben

Exzellent, das funktioniert gut. Ich hatte so etwas versucht, wurde aber in der Logik festgefahren. Ta viel :) Lunatik vor 14 Jahren 0
0
DaveParillo

Es gibt auch diese Funktion . Es ist algorithmisch nahezu identisch mit @ JDunkerley's - nur ausführlicher. Möglicherweise einfacher in verschiedenen Umgebungen zu implementieren.

Dies würde von Access aus funktionieren, wo benutzerdefinierte Funktionen verfügbar gemacht werden. AFAIK funktioniert jedoch nicht über eine ADO-Verbindung. Lunatik vor 14 Jahren 0
Einverstanden. Ich fand den Beitrag nützlich, weil es der gleiche Algorithmus war, der anders implementiert wurde, die Art von Dingen, die man als Back-Check verwenden könnte, usw. DaveParillo vor 14 Jahren 0
Entschuldigung, ich musste abstimmen - der Link führt mich zu einer Google-Website, die mich auffordert, mich anzumelden. Darren Bartrup-Cook vor 6 Jahren 0