diff --git a/CHANGELOG.md b/CHANGELOG.md index b33fb4f..aa4bf6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Fixed `Template` key lookup to match CVEs even when `Remediations` CVE cells include extra leading/trailing spaces. - Updated key-driven `Template` formulas to return blank for missing source values (including exception date) instead of displaying Excel zero-date artifacts. - Fixed malformed `Template` `Unresolved for` formula that caused Excel to remove formula records from `sheet2.xml` during file recovery. +- Fixed `Template` key lookup regression for numeric `Plugin ID` keys by matching Plugin IDs with numeric-first fallback logic. - Added repository policy in `AGENTS.md` requiring blank output for missing key-driven auto-populated values. - Updated `scripts/build_tracker_workbook.py` default seed rows for the new column layout and status set. - Updated `README.md` workbook column definitions and behavior notes for exception dates and unresolved metrics. diff --git a/nessus_remediation_tracker.xlsx b/nessus_remediation_tracker.xlsx index 3d173cb..8314f55 100644 Binary files a/nessus_remediation_tracker.xlsx and b/nessus_remediation_tracker.xlsx differ diff --git a/scripts/build_tracker_workbook.py b/scripts/build_tracker_workbook.py index 72fbc1b..929cb73 100644 --- a/scripts/build_tracker_workbook.py +++ b/scripts/build_tracker_workbook.py @@ -335,7 +335,8 @@ def build_template_sheet(wb: Workbook, max_rows: int) -> None: ) lookup_formula = ( f'=IF(A{row}="","",IFERROR(MATCH(1,INDEX((TRIM(Remediations!$A:$A)=TRIM({normalized_key}))*1,0),0),' - f'IFERROR(MATCH(TRIM({normalized_key}),Remediations!$B:$B,0),"")))' + f'IFERROR(MATCH(IFERROR(VALUE(TRIM({normalized_key})),TRIM({normalized_key})),Remediations!$B:$B,0),' + f'IFERROR(MATCH(TRIM({normalized_key}),Remediations!$B:$B,0),""))))' ) ws[f"N{row}"] = lookup_formula