将路径变量加入导入csv文件中的每一行

时间:2015-05-11 18:59:21

标签: excel powerquery

我有很多导入文件,看起来像这样 enter image description here

因此每个团队成员都有销售价值,但内部没有期限。

句号在路径中编码,如:

AllData\201501\Revenues.txt
AllData\201502\Revenues.txt
AllData\201503\Revenues.txt

我想从每个数据行的路径中获取Periode,因此我的最终输出表应如下所示:

enter image description here

所以我必须从文件内部的路径中带出句点。

如何访问路径的问题在这里以完美的例子解决:

How can I save a path criteria when I import from folders?

但是我仍然在"整个"文字,不在行上。

2 个答案:

答案 0 :(得分:1)

在链接的问题中,您可以更改自定义列公式:

Text.FromBinary([Content])

Text.Split(Text.FromBinary([Content]), "#(000a)") (取决于换行符的表示方式,您可能需要使用“#(000a)#(000d)”)。

这将拆分每个新行的文本,您将获得名称列表;值对。单击列名称旁边的两个箭头以展开列。现在,每一行都应具有与名称相关联的句点;值对。最后,在分号上用分隔符拆分列,将名称与值分开。

答案 1 :(得分:0)

有两种选择,都涉及可怕的方程式 第一个选项,我们假设路径将在字符串中具有相同位置的句点 例如,我们想要第一个和第二个斜杠之间的数字。

=TRIM(LEFT(SUBSTITUTE(MID(A1,FIND("|",SUBSTITUTE(A1,"\","|",1))+1,LEN(A1)),"\",REPT(" ",LEN(A1))),LEN(A1)))

如果它在不同的斜杠集之间,请更改,1以告知公式从哪个斜杠开始。如果斜杠的数量可能不同,那么我们将不得不尝试第二个选项。

第二种选择,我们假设这些是路径中唯一的数字 该公式将提取这些数字:

=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10)

请注意,这将从字符串中提取所有数字。如果路径包含数字,那么这些将添加到字符串中。例如C:\ 2014Data \ 201401 \ Revenues.txt将返回2014201401
如果这不能解决问题,那么自己将列放入表中会更容易