如果源表发生更改,则极低功耗查询将挂起excel

如果源表发生更改,则极低功耗查询将挂起excel,excel,powerquery,Excel,Powerquery,我有一个power查询,用于自动将同一工作簿中的表导入并筛选到另一个工作表中 它只有120行,我删除了不活动的行,并删除了一些列 如果我转到源表并更改单个值,然后刷新查询,它将在几秒钟内处理。如果我更改列的几乎所有值(即,将“是”替换为“否”,反之亦然),刷新查询将使Excel挂起30多分钟 是什么导致了这种情况,关于如何调试或分析问题有什么想法吗 编辑:以下是电源查询: let Source = Excel.CurrentWorkbook(){[Name="rosterTable"]}

我有一个power查询,用于自动将同一工作簿中的表导入并筛选到另一个工作表中

它只有120行,我删除了不活动的行,并删除了一些列

如果我转到源表并更改单个值,然后刷新查询,它将在几秒钟内处理。如果我更改列的几乎所有值(即,将“是”替换为“否”,反之亦然),刷新查询将使Excel挂起30多分钟

是什么导致了这种情况,关于如何调试或分析问题有什么想法吗

编辑:以下是电源查询:

let
    Source = Excel.CurrentWorkbook(){[Name="rosterTable"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Full Name", type text}, {"Status", type text}, {"Last Name", type text}, {"First Name", type text}, {"Zendesk Name", type text}, {"FT/PT", type text}, {"Atrium?", type text}, {"Lead?", type text}, {"Assigned Tier", Int64.Type}, {"Team", type text}, {"CX Type", type text}, {" Hire Date", type datetime}, {"T1 Production Date", type datetime}, {"T2 Production Date", type datetime}, {"T3 Production Date", type any}, {"Last Day of Employment", type datetime}, {"Email", type text}, {"Expected Hours/Day based on CX Type", type any}, {"Sun", type any}, {"Mon", type any}, {"Tue", type any}, {"Wed", type any}, {"Thur", type any}, {"Fri", type any}, {"Sat", type any}, {"Total PT Hours", Int64.Type}, {"Column1", type any}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Last Name", "First Name", "FT/PT", "Lead?"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Full Name", "Team", "Atrium?", "Assigned Tier", "Status", "Zendesk Name", "CX Type", " Hire Date", "T1 Production Date", "T2 Production Date", "T3 Production Date", "Last Day of Employment", "Email", "Expected Hours/Day based on CX Type", "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Total PT Hours", "Column1"}),
    #"Removed Columns1" = Table.RemoveColumns(#"Reordered Columns",{"CX Type", " Hire Date", "T1 Production Date", "T2 Production Date", "T3 Production Date", "Last Day of Employment", "Email", "Expected Hours/Day based on CX Type", "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Total PT Hours", "Column1"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns1", each ([Full Name] <> null and [Full Name] <> " ")),
    #"Reordered Columns1" = Table.ReorderColumns(#"Filtered Rows",{"Full Name", "Team", "Status", "Atrium?", "Assigned Tier", "Zendesk Name"}),
    #"Filtered Rows1" = Table.SelectRows(#"Reordered Columns1", each ([Status] = "Active")),
    #"Reordered Columns2" = Table.ReorderColumns(#"Filtered Rows1",{"Full Name", "Team", "Atrium?", "Assigned Tier", "Status", "Zendesk Name"})
in
    #"Reordered Columns2"
let
Source=Excel.CurrentWorkbook(){[Name=“rosterTable”]}[Content],
#“已更改类型”=表格.TransformColumnTypes(源代码,{{“全名”,类型text},{“状态”,类型text},{“姓氏”,类型text},{“名字”,类型text},{“Zendesk名称”,类型text},{“FT/PT”,类型text},{“心房?”,类型text},{“领导”,类型text},{“指定层”,Int64.Type},{“团队”,类型text},{“CX类型”,类型text},{“雇佣日期”,键入datetime},{“T1生产日期”,键入datetime},{“T2生产日期”,键入datetime},{“T3生产日期”,键入any},{“工作的最后一天”,键入datetime},{“电子邮件”,键入text},{“基于CX类型的预计小时/天”,键入any},{“Sun”,键入any},{“Mon”,键入any},{“Tue”,键入any},{“Wed”,键入any},{“Thur”,键入any},{“Fri”,键入any},{“Sat”,键入any},{“总PT小时数”,Int64.type},{“Column1”,键入any}),
#“删除的列”=表.RemoveColumns(#“已更改类型”、{“姓氏”、“名字”、“FT/PT”、“Lead?”}),
#“重新排序的列”=表格。重新排序的列(#“删除的列”、{“全名”、“团队”、“中庭?”、“指定的层”、“状态”、“Zendesk名称”、“CX类型”、“雇用日期”、“T1生产日期”、“T2生产日期”、“T3生产日期”、“雇佣的最后一天”、“电子邮件”、“基于CX类型的预计小时数/天”、“太阳”、“周一”、“周二”、“周三”、“周四”、“周五”,“Sat”、“总PT小时数”、“第1列”}),
#“删除的列1”=表中删除的列(#“重新排序的列”、{“CX类型”、“雇用日期”、“T1生产日期”、“T2生产日期”、“T3生产日期”、“雇佣的最后一天”、“电子邮件”、“基于CX类型的预期时数/天”、“太阳”、“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“总PT时数”、“列1”),
#“筛选的行”=表。选择行(#“删除的列1”,每个([全名]null和[全名]“”),
#“重新排序的列1”=表。重新排序的列(#“筛选行”、{“全名”、“团队”、“状态”、“中庭?”、“指定层”、“Zendesk名称”}),
#“筛选的行1”=表格。选择行(#“重新排序的列1”,每个([状态]=“活动”),
#“重新排序的列2”=表。重新排序的列(#“筛选的行1”、{“全名”、“团队”、“中庭?”、“分配的层”、“状态”、“Zendesk名称”})
在里面
#“重新排序的列2”
表中的函数(该函数确定某人应该是活动的还是非活动的,并立即更新):
=if(TRIM([@[全名])“”、if(and([@[雇佣日期]]ProdWeekStart))、“活动的”、“非活动的”)、“)


如果我更改表格,保存并重新打开工作表。PowerQuery不会更新。如果我尝试刷新它,它仍然会挂起。

我不确定这是否重要,但请在刷新之前保存文件。您也可以尝试将其保存为
.xlsb
您的公式是什么?没有什么会导致Excel本身挂起,但低效的查询可能会导致refresh可能需要很长时间,即使是在结果很小的表上。@AlejandroLopez Lago MSFT我已将power查询添加到我的帖子中。该函数似乎与您发布的查询没有关系:该查询从Excel工作表中的表或命名范围中提取数据。因此,请检查这是否是一个非常慢的查询。除此之外:您可以删除除最后一次“重新排序”之外的所有内容“-步骤,因为它将否决其他步骤。而且:我有点惊讶函数返回得很快,因为它使用递归,而递归在m中通常很慢。如果没有@,你的函数不也可以工作吗?我认为这是性能问题的原因。我不确定这是否重要,但在刷新之前保存文件。您也可以尝试将其保存为
.xlsb
您的公式是什么?没有什么会导致Excel本身挂起,但低效的查询可能会导致刷新需要很长时间,即使是在结果很小的表上。@AlejandroLopez Lago MSFT我已将power查询添加到我的帖子中。该函数似乎与您发布的查询没有关系:该查询从Excel工作表中的表或命名范围中提取数据。因此,请检查这是不是查询太慢了。除此之外:除了最后的“重新排序”步骤外,您可以删除所有步骤,因为它将否决其他步骤。而且:我有点惊讶函数返回得很快,因为它使用递归,而递归在m中通常很慢。如果没有@,你的函数不也可以工作吗?我认为这就是性能问题的原因。