# Apply one formula to many columns

Shape / columns

A variant of [Add a calculated column](https://meridian.online/operations/add-a-calculated-column).

Apply the same expression to each of a set of columns, creating or updating one column per input.

Page: <https://meridian.online/operations/add-a-calculated-column/apply-a-formula-to-many-columns>

## Status

Runs as a SQL step.

arcform carries it as a `sql:` step today.

## The DuckDB step

one formula applied to each of several columns

```sql
CREATE TEMP TABLE scores AS SELECT * FROM (VALUES (1, 10, 20, 30), (2, 5, NULL, 15)) t(id, q1, q2, q3);
CREATE TEMP TABLE result AS
SELECT id, COLUMNS('^(q\d)$') * 2 AS 'double_\1' FROM scores;
SELECT * FROM result ORDER BY id;
SELECT CASE WHEN ((SELECT list(column_name) FROM (DESCRIBE result)) = ['id', 'double_q1', 'double_q2', 'double_q3'] AND (SELECT [double_q1, double_q2, double_q3] FROM result WHERE id = 1) = [20, 40, 60] AND (SELECT double_q2 IS NULL AND double_q3 = 30 FROM result WHERE id = 2)) THEN 'as expected' ELSE error('each of q1, q2 and q3 was not doubled into a column of its own') END AS verdict;
```

The statement builds its own data.

It needs nothing installed beyond DuckDB itself.

## What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

- Alteryx Designer: [`Multi-Field Formula`](https://help.alteryx.com/current/en/designer/tools/preparation/multi-field-formula-tool.html) (read 2026-09-27)
- KNIME Analytics Platform: [`String Manipulation (Multi Column)`](https://api.hub.knime.com/nodes/*XHEmLNBRrffGaxF4?details=full) (read 2026-09-27)
- RapidMiner Studio: [`Generate Function Set`](https://docs.rapidminer.com/latest/studio/operators/blending/attributes/generation/generate_function_set.html) (read 2026-09-27)
