【问题标题】:Excel Power Query - Remove Column if it exists, otherwise don't tryExcel Power Query - 如果存在则删除列,否则不要尝试
【发布时间】:2021-09-18 03:44:38
【问题描述】:

我有一个计算出的 Column Custom = Column1 + Column2 - Column3 计算后,我需要删除除自定义之外的所有列 问题有时是数据集中不存在列 [Column4] 之一 我可以使用“否则尝试”正确计算自定义,如下所示:

 #"Added Custom" = Table.AddColumn(#"Previous Step", "Custom", each [Column2]+[Column3]- (try [Column4] otherwise 0)),
    #"Removed Columns7" = Table.RemoveColumns(#"Added Custom",{"Column2", "Column3", "Column4"}), 

这可以正常工作,但是如果 [column4] 不存在,则第二步会失败。

所以我需要一种方法来测试 [Column4] 是否存在,如果存在则将其删除,否则不要尝试。

【问题讨论】:

  • 对不起,标题应该是“如果存在则删除列,否则不要尝试”
  • 这些解决方案是否适合您?

标签: powerquery


【解决方案1】:

怎么样

#"Added Custom" = Table.AddColumn(#"Previous Step", "Custom", each [Column2]+[Column3]- (try [Column4] otherwise 0)),
#"Removed Columns" = try Table.RemoveColumns(#"Added Custom,{"Column4"}) otherwise #"Added Custom"

【讨论】:

    【解决方案2】:

    解决此问题的一种方法是选择要保留的列,而不是删除不需要的列。这相当于删除除您指定的列之外的所有列。

    或者,您可以将所有表格列与您的列表相交。

    Table.RemoveColumns(
        #"Added Custom",
        List.Intersect(
            {
                Table.ColumnNames(#"Added Custom"),
                {"Column2", "Column3", "Column4"}
            }
        )
    )
    

    【讨论】:

      【解决方案3】:

      另一种方式:

      add = Table.AddColumn(Source, "Custom", each List.Sum({[Column2],[Column3],-[Column4]?})),
      del = Table.RemoveColumns(add,{"Column2", "Column3", "Column4"}, 1)
      

      【讨论】:

        【解决方案4】:

        如果您要保留的唯一列是Custom,则只需使用Table.SelectColumns

        如果您可能想要保留其他列,您也可以选择它们,或者您可以生成要删除的列列表。

        从您所写的内容来看,您似乎想要删除名称以Column 开头的所有列。如果是这样的话,这里有一种方法:

          #"Removed Columns"= Table.RemoveColumns(#"Previous Step", 
              List.Select(Table.ColumnNames(#"Previous Step"), each Text.StartsWith(_,"Column")))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-12
          相关资源
          最近更新 更多