# XLSX To Python Step 6 Calculation Block Detection

> Sub-skill of xlsx-to-python: Step 6 — Calculation Block Detection.

- Skill: `vamseeachanta/xlsx-to-python-step-6-calculation-block-detection` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vamseeachanta/xlsx-to-python-step-6-calculation-block-detection`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vamseeachanta/xlsx-to-python-step-6-calculation-block-detection/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: vamseeachanta (https://skillmd.com/u/vamseeachanta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vamseeachanta/xlsx-to-python-step-6-calculation-block-detection

---


# Step 6 — Calculation Block Detection

## Step 6 — Calculation Block Detection


Heuristic to separate calculation regions from data/lookup tables:

```python
def detect_calculation_blocks(ws_formulas, min_formula_ratio=0.3):
    """Identify contiguous regions dominated by formulas."""
    blocks = []
    current_block = []
    for row in ws_formulas.iter_rows():
        formula_count = sum(
            1 for c in row
            if isinstance(c.value, str) and c.value.startswith("=")
        )
        total = sum(1 for c in row if c.value is not None)
        if total > 0 and formula_count / total >= min_formula_ratio:
            current_block.append(row[0].row)
        else:
            if len(current_block) >= 2:
                blocks.append((current_block[0], current_block[-1]))
            current_block = []
    if len(current_block) >= 2:
        blocks.append((current_block[0], current_block[-1]))
    return blocks
```

