如何在电源查询中对同一行中的数字求和?

How can I sum numbers in the same line in power query?

早上好,

我对 PowerQuery 有一些疑问,我在同一行中有一列包含一些数字,我需要求和,我该怎么做?

示例输入

field 1    |   field 2 | field 3
Planeacion    2,3,1     2,2,2


field 1   | field 2  | field 3
Planeacion   6           6

输出

提前致谢

如果您创建这样的函数:

CREATE FUNCTION [dbo].[csv2list] 
(   
    @p1 varchar(max)
)
RETURNS TABLE 
AS
RETURN 
(
    WITH List as (
    SELECT CAST (value AS varchar(max)) value
    FROM STRING_SPLIT(SUBSTRING(@p1, 1, LEN(@p1)), ',') 
)
SELECT value
FROM List
)
GO

那么你可以这样做:

SELECT * FROM csv2list('2,3,1');

这将产生:

2
3
1

或者将它们相加,使用:

select sum(cast(value as integer)) from csv2list('2,3,1');

在 powerquery 中你可以这样做

Click-select 带逗号的列

右键单击,替换值,并将逗号替换为加号 ( , to +)

Click-select同列

右击,变换...小写...

编辑生成的公式,以便您每次都能看到

Text.Lower, type text

你把它换成

each Expression.Evaluate(_), type number

两列的示例版本

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Replaced Value" = Table.ReplaceValue(Source,",","+",Replacer.ReplaceText,{"field 2", "field 3"}),
#"Transform1"   = Table.TransformColumns(#"Replaced Value",{{"field 2", each Expression.Evaluate(_), type number}, {"field 3", each Expression.Evaluate(_), type number}})
in #"Transform1"