Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Power Query以透视包含租赁费用的租金登记_Excel_Powerquery - Fatal编程技术网

Excel Power Query以透视包含租赁费用的租金登记

Excel Power Query以透视包含租赁费用的租金登记,excel,powerquery,Excel,Powerquery,我在下面有一个截短的租金列表示例(实际是数百行,包含不同的租赁代码、空缺、迁出组合)。数据存在一些随机性,因为存在空缺,使得“迁入、租赁、迁出”字段为空,有时还存在迁出 我想将leaseCodes旋转到单独的列,如第二幅图所示 是否可以在没有自定义代码的电源查询中执行此操作?我最初的想法是填写除租赁代码和金额之外的所有字段,然后将租赁代码列与金额列一起旋转。但正如你所看到的,我不能这样做,因为日期栏有时是空白的,因为空缺或填补了迁出 我真的非常感谢任何人的帮助,以最好的方式导航这一点 谢谢,

我在下面有一个截短的租金列表示例(实际是数百行,包含不同的租赁代码、空缺、迁出组合)。数据存在一些随机性,因为存在空缺,使得“迁入、租赁、迁出”字段为空,有时还存在迁出

我想将leaseCodes旋转到单独的列,如第二幅图所示

是否可以在没有自定义代码的电源查询中执行此操作?我最初的想法是填写除租赁代码和金额之外的所有字段,然后将租赁代码列与金额列一起旋转。但正如你所看到的,我不能这样做,因为日期栏有时是空白的,因为空缺或填补了迁出

我真的非常感谢任何人的帮助,以最好的方式导航这一点

谢谢,


通过从表/范围[x]中选择数据并使用数据…创建表1,包括标题。在“单位”列上单击鼠标右键,然后向下填充。。。选择[unit,leaseCode,Amount]列,右键单击RemoveOtherColumns。使用LeaseCode列标题旁边的下拉框并取消选中(null)以删除这些行。选择最小编码列,然后变换…透视列。。。对于“值”列,请使用“金额”。做文件。。。关闭并加载到。。。。。仅创建连接。您应该会得到类似于此代码的内容(经过编辑以将datetime替换为date)。确保将此查询命名为Table1

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"unit", Int64.Type}, {"floorplan", type any}, {"unitArea", Int64.Type}, {"resident", type text}, {"tenant", type text}, {"marketRent", Int64.Type}, {"leaseCode", type text}, {"Amount", Int64.Type}, {"residentDeposit", Int64.Type}, {"otherDeposit", Int64.Type}, {"moveIn", type date}, {"leaseEnd", type date}, {"moveOut", type date}, {"balance", type any}}),
#"Filled Down" = Table.FillDown(#"Changed Type",{"unit"}),
#"Removed Other Columns" = Table.SelectColumns(#"Filled Down",{"unit", "leaseCode", "Amount"}),
#"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each ([leaseCode] <> null)),
#"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[leaseCode]), "leaseCode", "Amount", List.Sum)
in #"Pivoted Column"
let Source=Excel.CurrentWorkbook(){[Name=“Table1”]}[Content],
#“已更改类型”=表.TransformColumnTypes(源,{{“单位”,Int64.Type},{“楼层平面”,Type any},{“单位”,Int64.Type},{“居民”,Type text},{“租户”,Type text},{“市场租金”,Int64.Type},{“租赁代码”,Type text},{“金额”,Int64.Type},{“剩余存款”,Int64.Type},{“其他存款”,Int64.Type},{“移动”,Type date},{“租赁”,键入日期},{“时差”,键入日期},{“余额”,键入任何}),
#“填充”=表的填充(#“更改类型”,{“单位”}),
#“已删除的其他列”=表。选择列(#“已填充”、“单位”、“最小编码”、“金额”}),
#“筛选行”=表。选择行(#“删除其他列”,每个([leaseCode]null)),
#“数据透视列”=表.Pivot(#“筛选行”,List.Distinct(#“筛选行”[leaseCode]),“leaseCode”,“Amount”,List.Sum)
在#“旋转柱”中
回到普通excel,显示查询对话框(如果尚未打开),其中包含数据…查询和连接。。。右键单击“表1查询”,然后选择“复制”。通过右键单击名为“填充”的步骤并使用“删除”直到结束,删除右侧“应用的步骤”选项卡中步骤2之后的每个步骤。使用[unit]列标题旁边的下拉框并取消选中(null)以删除这些行。选择[leaseCode,Amount]列,然后右键单击Remove列以删除这两个列。主页…合并查询。。。在底部下拉列表中选择我们之前创建的Table1。单击顶部部分的“单位列”,然后单击底部部分的“单位列”以链接它们。默认情况下,联接种类保留在外部。点击OK。单击新列顶部的双箭头,取消选中“单位”,取消选中“使用原始列名作为前缀”,然后单击“确定”。根据需要设置度假区。根据需要更改类型关闭并加载到表。应该生成类似于

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"unit", Int64.Type}, {"floorplan", type any}, {"unitArea", Int64.Type}, {"resident", type text}, {"tenant", type text}, {"marketRent", Int64.Type}, {"leaseCode", type text}, {"Amount", Int64.Type}, {"residentDeposit", Int64.Type}, {"otherDeposit", Int64.Type}, {"moveIn", type date}, {"leaseEnd", type date}, {"moveOut", type date}, {"balance", type any}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([unit] <> null)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"leaseCode", "Amount"}),
#"Merged Queries" = Table.NestedJoin(#"Removed Columns",{"unit"},Table1,{"unit"},"Table1",JoinKind.LeftOuter),
#"Expanded Table1" = Table.ExpandTableColumn(#"Merged Queries", "Table1", {"mta", "watr", "Total", "garg"}, {"mta", "watr", "Total", "garg"})
in #"Expanded Table1"
let Source=Excel.CurrentWorkbook(){[Name=“Table1”]}[Content],
#“已更改类型”=表.TransformColumnTypes(源,{{“单位”,Int64.Type},{“楼层平面”,Type any},{“单位”,Int64.Type},{“居民”,Type text},{“租户”,Type text},{“市场租金”,Int64.Type},{“租赁代码”,Type text},{“金额”,Int64.Type},{“剩余存款”,Int64.Type},{“其他存款”,Int64.Type},{“移动”,Type date},{“租赁”,键入日期},{“时差”,键入日期},{“余额”,键入任何}),
#“筛选行”=表格。选择行(#“更改类型”,每个([unit]null)),
#“删除的列”=表.RemoveColumns(#“筛选行”、{“leaseCode”、“Amount”}),
#“合并查询”=Table.NestedJoin(#“删除的列”、{unit}、Table1、{unit}、Table1、JoinKind.LeftOuter),
#“Expanded Table1”=Table.ExpandTableColumn(#“合并查询”、“Table1”、{“mta”、“watr”、“Total”、“garg”}、{“mta”、“watr”、“Total”、“garg”})
在#“扩展表1”中

在查询编辑器中,突出显示“租赁代码”和“金额”列,然后旋转它们(从查询编辑器功能区上的“转换”选项卡)。

我实际上会删除第二张图像中的“租赁代码”列,因为不再需要它。非常感谢!这太神奇了。既然这样做了,保存此过程以便始终重新应用于文件的最佳方法是什么?只需将更新的数据表粘贴到工作表上,然后。。。刷新所有。。。