[[20220922134520]] 『パワークエリ:読み込み先をテーブルに展開する前』(まっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パワークエリ:読み込み先をテーブルに展開する前に「列幅の調整をしない」にしたい』(まっち)

5000万行300列の8GBのCSVファイルの特定の列を置き換える作業を命令され作業中です。

■やったこと
・あらゆるテキストエディタで読み込み→すべて読み込みできず
・ACCESSで読み込み→255列以上無理とのエラー
・パワークエリで読み込み→成功
 結合で特定の列を置き換えることにも成功
 →104万行以下に絞り込まないとCSVに出力できない
 →なので、ひとまずインデクス列を追加し、100万行毎に
  読み込み先をテーブルに展開
 →すると、デフォルトで「列幅の調整をする」にチェックが
  入っているので、列幅の自動調整でとても時間がかかって
  いる状況
 →VBAで処理すれば、AdjustColumnWidth = Falseで解決
  するのですが、VBAを使えないのです。

■やりたいこと
・パワークエリのテーブルができる前に
 「外部データのプロパティ」の
 「データレイアウト」の
 「列の幅を調整」するのチェックを外したい
※VBAを使わずにという条件でなのです。
 

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 最初数行だけ読み込んだテーブル作って、プロパティ変更すればいいのでは?

 let
    ソース = Csv.Document(File.Contents("E:\test.csv"),[Delimiter=",", Columns=4, Encoding=932, QuoteStyle=QuoteStyle.None]),
    昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
    変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"N", Int64.Type}, {"a", Int64.Type}, {"b", Int64.Type}, {"d", Int64.Type}}),
    カスタム1 = Table.FirstN(Table.Skip(変更された型,10),10)  // ←最初ここまででテーブルに読み込む
 in
    カスタム1

 ちなみにインデックス列の追加っていります?
 Table.SkipとTable.FirstNで必要な行範囲を選択的に読み込めませんか?
 スキップする行と読み込む行数をテーブルにしておけば、Queryを書き換える必要もなくなります
(´・ω・`) 2022/09/22(木) 14:37

いただいたご回答で解決いたしました。
ありがとうございます。

>最初数行だけ読み込んだテーブル作って、プロパティ変更すればいいのでは?
おっしゃるとおりです。まったく思いつきもしませんでした。恥ずかしい限り・・・。

>ちなみにインデックス列の追加っていります?
「連番振って値の範囲で人力抽出」しか思い浮かばなかったです・・・。
必要な行範囲を選択的に・・・、言われてあぁ!です。

質問する内容じゃないレベルを質問してしまい申し訳ございません。
勉強させていただきます。
(まっち) 2022/09/22(木) 14:44


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.