## The solution

```
array_sum(
	array_foreach( 
        string_to_array ( "list of polygons" , ','),
		attribute (get_feature (@layer, 'name', @element), 'area')
    )
)
```
## Explanation

The error in your expression is that you use the funtion `area()` with the argument `@element`, but @element returns the name of a polygon, whereas `area()` expects a polygon-geometry as input.

The functions `area()` as well as `$area` calculate the area from the geometry. You, however, just want to add values that already exist in an attribute.

## How to implement

1. So inside the `array_foreach()` function, you get the name of one of the polygons. You then must identify the feature (line in your attribute table) of this feature - like line 2 for feature B in your example. Use `get_feature()` for that.

2. That for this feature, get get the value of the attribute named `area`, using the function `attribute()`.