首页 > 解决方案 > 删除特定列右侧的所有列

问题描述

我有一个 Excel 模板文件,其中包含代表工作周日期的动态列数。一些用户决定在这些列的右侧添加他们自己的小计列。我需要一种方法来识别第一个空白列,然后截断该列及其后面的所有列。

我以前一直在使用以下脚本来删除所有以“列”开头的列:

// Create a list of columns that start with "Column" and remove them.
Removed_ColumnNum_Columns = Table.RemoveColumns(PreviousStepName, List.Select(Table.ColumnNames(PreviousStepName), each Text.StartsWith(_, "Column") )),

基于能够找到第一个 ColumnXX 列,我想删除它以及它之后的所有列

在此处输入图像描述

标签: powerquerym

解决方案


您可以使用List.PositionOf获取您的ColumnIndex而不是解析文本。

我会像这样把它放在一起:

// [...]
ColumnList = Table.ColumnNames(#"Promoted Headers"),
ColumnXX = List.Select(ColumnList, each Text.StartsWith(_, "Column")){0}, 
ColumnIndex = List.PositionOf(ColumnList, ColumnXX),
ColumnsToKeep = List.FirstN(ColumnList, ColumnIndex),
FinalTable = Table.SelectColumns(#"Promoted Headers", ColumnsToKeep)

推荐阅读