在 Power Query 中将负文本转换为十进制数

Posted

技术标签:

【中文标题】在 Power Query 中将负文本转换为十进制数【英文标题】:Convert negative text to decimal number in Power Query 【发布时间】:2021-05-25 15:03:34 【问题描述】:

如何使用 Power Query 将存储为文本的负数转换为十进制?

我有从软件生成的这种格式的文本数据:

11334;-          6,200;10;"040";"MAT";11;"CLEANSORB CS3G";"Abgang in Produktion";"2-GR";ja;446,600;"MatSchein Abg in Fertig";"MAT";"";07.10.2020 08:13:49;"";"PPA";3646;10,0;02;17.529,820;07.10.2020;230;2.246,600;"99";17.529,820
11334;-          2,200;10;"040";"MAT";11;"CLEANSORB CS3G";"Abgang in Produktion";"2-GR";ja;446,600;"MatSchein Abg in Fertig";"MAT";"";07.10.2020 08:13:49;"";"PPA";3646;10,0;02;17.529,820;07.10.2020;230;2.246,600;"99";17.529,820
11334;-          126,200;10;"040";"MAT";11;"CLEANSORB CS3G";"Abgang in Produktion";"2-GR";ja;446,600;"MatSchein Abg in Fertig";"MAT";"";07.10.2020 08:13:49;"";"PPA";3646;10,0;02;17.529,820;07.10.2020;230;2.246,600;"99";17.529,820
11334;-          15,000;10;"040";"MAT";11;"CLEANSORB CS3G";"Abgang in Produktion";"2-GR";ja;446,600;"MatSchein Abg in Fertig";"MAT";"";07.10.2020 08:13:49;"";"PPA";3646;10,0;02;17.529,820;07.10.2020;230;2.246,600;"99";17.529,820
11334;          10,200;10;"040";"MAT";11;"CLEANSORB CS3G";"Abgang in Produktion";"2-GR";ja;446,600;"MatSchein Abg in Fertig";"MAT";"";07.10.2020 08:13:49;"";"PPA";3646;10,0;02;17.529,820;07.10.2020;230;2.246,600;"99";17.529,820

当我尝试将其与 Power Query 一起使用以转换为十进制数时,出现错误:

您可以注意到,(减号)符号后突然有很多空格,如果我尝试执行 >replace

有人可以帮助解释为什么以及是什么导致了这个问题吗?

p.s 使用生成此文本/csv 文件的软件下载此文件后,它首先(自动)以读取模式打开文件(看起来一切正常),但我需要将其保存在 .xlsx 中并使用电源查询...所以您可以想象这始终是手动工作...奇怪的是为什么 PowerQ 无法读取此文件 > 我也在 Power BI 中尝试过,但同样的事情...

提前致谢。

【问题讨论】:

请不要使用屏幕截图来获取数据,而是使用简单、可读、可复制的文本,以便在家中的每个人都可以跟进。 目前还不清楚为什么替换不起作用。可变数量的空格无关紧要 - 如果您只是告诉 Power Query 将单个空格替换为空,它会将 all 空格替换为空。至于为什么直接打开CSV可能无法直接工作,这里显示的还不够多。如果您可以使用由单行组成的 CSV 来复制问题,我们也可以。 @JeroenMostert 抱歉,我现在就编辑。 @JeroenMostert 嘿,它实际上正在运行!我的坏....替换其实很好!!! 【参考方案1】:

试试这个:

= Table.TransformColumns(Source, "ColumnWithSpaces", each Number.From(Text.Remove(_," ")), type number)

【讨论】:

以上是关于在 Power Query 中将负文本转换为十进制数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中将负指数数转换为十进制数?

在 Power Query 中拆分列而不转换为文本?

在c ++中将负整数转换为二进制字符串

如何在python中将负整数值转换为十六进制

Powerbi Power Query Editor 将字符串转换为数字时出错

使用 Power Query 和 JSON 转换记录