Merge pull request #6 from Kenearos/copilot/fix-dienstplan-functionality
Fix Excel formula syntax error in Checks sheet validation
This commit is contained in:
commit
0636924bdb
2 changed files with 46 additions and 1 deletions
45
CHANGELOG.md
Normal file
45
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# Changelog
|
||||
|
||||
## 2025-11-14 - Fix Excel Formula Syntax Error
|
||||
|
||||
### Issue
|
||||
Fixed a syntax error in the Checks sheet that would cause Excel formula errors.
|
||||
|
||||
### Details
|
||||
The nested WENN (IF) formula in the Checks sheet Status column was missing a semicolon between the empty string result and the second WENN function.
|
||||
|
||||
**File:** `src/build_template.py`, line 264
|
||||
|
||||
**Before:**
|
||||
```excel
|
||||
=WENN(A2="";""WENN(ABS(B2-1)<=0,0001;"OK";"FEHLER"))
|
||||
```
|
||||
|
||||
**After:**
|
||||
```excel
|
||||
=WENN(A2="";"";WENN(ABS(B2-1)<=0,0001;"OK";"FEHLER"))
|
||||
```
|
||||
|
||||
### Impact
|
||||
This fix ensures that the Checks sheet Status column works correctly to validate that daily shift totals sum to 1.0, displaying "OK" or "FEHLER" as appropriate.
|
||||
|
||||
### Testing
|
||||
- Template rebuilt successfully
|
||||
- November 2025 file generated without errors
|
||||
- All formulas verified syntactically correct
|
||||
- No security issues found (CodeQL scan: 0 alerts)
|
||||
|
||||
### How to Use
|
||||
To generate a corrected November 2025 file:
|
||||
|
||||
```bash
|
||||
# 1. Rebuild the template with the fix
|
||||
python src/build_template.py
|
||||
|
||||
# 2. Generate November 2025
|
||||
python src/fill_plan_dates.py 2025 11
|
||||
|
||||
# 3. Open output/Dienstplan_2025_11_NRW.xlsx in Excel
|
||||
```
|
||||
|
||||
The file will now work correctly with all formulas calculating as expected according to the Variante 2 (streng) rules specified in SPECIFICATION.md.
|
||||
|
|
@ -261,7 +261,7 @@ def _populate_checks(ws):
|
|||
for row in range(2, 52):
|
||||
date_ref = f"A{row}"
|
||||
ws[f"B{row}"] = f'=WENN({date_ref}="";"";SUMMENPRODUKT((tblPlan[Datum]={date_ref})*(tblPlan[Anteil])))'
|
||||
ws[f"C{row}"] = f'=WENN({date_ref}="";""WENN(ABS(B{row}-1)<=0,0001;"OK";"FEHLER"))'
|
||||
ws[f"C{row}"] = f'=WENN({date_ref}="";"";WENN(ABS(B{row}-1)<=0,0001;"OK";"FEHLER"))'
|
||||
|
||||
ws.column_dimensions["A"].width = 14
|
||||
ws.column_dimensions["B"].width = 16
|
||||
|
|
|
|||
Reference in a new issue