Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
Power Query 全行nullまたは0場合、列削除
投稿日時: 23/05/19 13:48:45
投稿者: tarima

Power Query 全行nullまたは0場合、列削除したいです。
方法を教えてください。
 
削除対象列が可変のため、列名指定できません。

回答
投稿日時: 23/05/19 15:34:30
投稿者: sk

引用:
全行nullまたは0場合、列削除

引用:
削除対象列が可変

(詳細エディター)
--------------------------------------------------------------
let
    Source = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    ColumnNames = Table.ColumnNames(Source),
    ConvertedToTable = Table.FromList(ColumnNames, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    GetColumnValues = Table.AddColumn(ConvertedToTable, "リスト", each Table.Column(Source, _[Column1])),
    GetNonNullColumns = Table.SelectRows(GetColumnValues, each List.NonNullCount(List.ReplaceValue(_[リスト], 0, null, Replacer.ReplaceValue)) > 0),
    NonNullColumnNames = GetNonNullColumns[Column1],
    SelectedColumns = Table.SelectColumns(Source, NonNullColumnNames)
in
    SelectedColumns
--------------------------------------------------------------
 
以上のクエリのような結果を得られればよい、ということでしょうか。

回答
投稿日時: 23/05/19 17:01:18
投稿者: んなっと

同じ内容ですが...
 
let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    Lis = List.Select(Table.ColumnNames(ソース),
      each List.NonNullCount(List.Transform(Table.Column(ソース, _),
        each if _=0 then null else _))>0),
    Sel = Table.SelectColumns(ソース,Lis)
in
    Sel

投稿日時: 23/05/20 16:12:11
投稿者: tarima

んなっと様、いつもありがとうございます!
今回も希望どおりで大変助かりました。こんなにシンプルにわかりやすく書けるのですね。
また勉強になりました。
 
 

んなっと さんの引用:
同じ内容ですが...
 
let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    Lis = List.Select(Table.ColumnNames(ソース),
      each List.NonNullCount(List.Transform(Table.Column(ソース, _),
        each if _=0 then null else _))>0),
    Sel = Table.SelectColumns(ソース,Lis)
in
    Sel