如何在电源查询中对同一行中的数字求和?
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"
早上好,
我对 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"