Obter a soma dos valores de uma coluna em um DataTable

Olá comunidade!

Estou com um problema ao obter a soma dos valores de uma coluna. Ela me retorna o valor total errado. Poderiam me ajudar?

a expressão que estou usando é essa: dt.AsEnumerable().Sum(Function(row)((“ColumnName”)))

esses são os valores da coluna:
Uploading: image.png(1)…

Uploading: image.png…

Continuing the discussion from Obter a soma dos valores de uma coluna em um DataTable:

23.22
3.16
18.3
3.16
1.26
15.6
6.22
11.96
3.16
11.98
3.16
3.42
7.48
3.16
6.22
11.96

Desculpem,a imagem não esta carregando

Hi @devrpa746 ,

Maybe there is a typo in the Expression provided, however let us know what is the Expected value and the value that you are currently receiving.

dt.AsEnumerable().Sum(Function(row)CDbl(row("ColumnName").ToString))

a saída me retorna= 222
o resultado esperado = 388,00
eu apenas coloquei alguns numeros, todos os numeros são:
23.22
3.16
18.3
3.16
1.26
15.6
6.22
11.96
3.16
11.98
3.16
3.42
7.48
3.16
6.22
11.96
3.96
3.16
11.98
3.16
1.26
11.26
3.16
1.26
18.3
3.16
11.98
3.16
15.6
3.16
11.98
3.16
19.74
3.16
6.22
3.16
1.26
6.22
3.16
1.26
11.26
3.16
11.26
3.16
11.26
3.16
11.26
3.16
13.6
7.96
18.3
3.16

@devrpa746 ,

Could you maybe also check if the Datatable dt has all the rows present in the Excel sheet ? You can use dt.Rows.Count to check the total row count and check if the rows in the Excel and the rows in the dt are the same.

Foi o que me retornou de erro ao seguir as instruções que você indicou. A variavel esta configurada como double.

“Assign: Conversion from string “” to type ‘Double’ is not valid.”

@devrpa746 ,

The error indicates that you have empty values also in the column. Try the modified expression below :

dt.AsEnumerable().Sum(Function(row)if(row("ColumnName").ToString.IsNumeric,CDbl(row("ColumnName").ToString),0))

Obrigada, obtive sucesso.

Como sou nova nesse mundo de expressões linqs, você pode me explicar o que essa expressão está fazendo? Seria enriquecedor, muito obrigada!

@devrpa746 ,

The above expression is also Similar to the earlier Expression, except that it also checks if there is a Non-Numeric (Empty spaces, hyphens, etc…) value in the column value and if present we are assigning the value as 0 to it, so that we can compute the Sum properly.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.