シーゴの Excel 研究室

タイトル変更しました (旧称:今日を乗り切るExcel研究所)

【PowerShell】CSV の前処理の前処理をするスクリプト(その2)

今回も PowerShell を使った CSV の前処理の前処理のスクリプトの続きです。

値にカンマや改行を含む CSV

前回の記事で、CSV 形式のテキストの整形処理をする PowerShell スクリプトを作成しました。

大抵はそれで事足りると思うのですが、 一部のスクリプトについて、CSV 形式によっては対応しきれないものがあります。

フィールドが単純にカンマと改行で区切れれば問題ないのですが、クォートされて値にカンマや改行コードが含まれるような複雑な CSV は扱えません。

本記事ではクォートされたフィールドの処理にも対応した改善版のスクリプトを紹介します。

ただし、正規表現を使った置換処理を多用しているため、非常に重たくなっています。 巨大な CSV ファイルでは実用的なパフォーマンスが得られないかもしれませんので、ご承知おきください。

続きを読む

【PowerShell】CSV の前処理の前処理をするスクリプト(その1)

今回は Excel ではなくて、PowerShell という技術者向けの話題です。

PowerShell でテキスト処理

データ分析には「前処理」の作業が付き物ですが、CSV データに関してはその前にファイル形式としての体裁を整える、つまり「前処理の前処理」が必要になることがままあります。

結局やることはテキストファイルの加工なので、 Windows 上なら機能豊富なシェル環境であるPowerShell を使えば簡単に出来るはずです。

と思ってやってみたら、決して簡単なことではありませんでした。

PowerShell は言語やコマンドが高機能なわりにかなりのクセがあって意外と使いづらく、単純なテキスト処理でもなかなか一筋縄にはいかないのです。 調査や試行錯誤で、だいぶ時間をはたいてしまいました。

今回、記憶が蒸発する前に、先々 CVS 前処理でありそうなあらかたの処理を「コピペで使えるスクリプト」として作成しておくことにします。

続きを読む

【Excel LAMBDA】データ分析編【ユーザ定義関数集】

データ分析編

LAMBDA 関数を使った数式によるユーザー定義関数(カスタム関数)として、実用的かつコピペで使えるサンプルコードをまとめていきたいと思います。

使い方は以下の記事を参照してください。

www.shegolab.jp

本記事では基本的なデータ分析に使えそうな関数を主に集めました。

続きを読む

【Excel LAMBDA】乱数生成編【ユーザー定義関数集】

乱数生成編

LAMBDA 関数を使った数式によるユーザー定義関数(カスタム関数)として、実用的でコピペで使えるサンプルコードをまとめていきたいと思います。

使い方は以下の記事を参照してください。

www.shegolab.jp

本記事ではダミーデータの生成に使えそうな、乱数生成関数を主に集めました。

続きを読む

【Excel LAMBDA】日付・時刻操作編(その2)【ユーザー定義関数集】

日付・時刻操作関数集 その2

LAMBDA 関数を使った数式によるユーザー定義関数(カスタム関数)として、実用的でコピペで使えるサンプルコードをまとめていきたいと思います。

ユーザー定義関数の登録方法は以下の記事を参照してください。

www.shegolab.jp

本記事では日付・時刻の操作関連のツールとしてよく使いそうな機能を主に集めました。

とはいえ、Excel での実業務には疎いので本当に必要とされているものが足りないかもしれません。 もし、こんな関数が欲しいという要望があったらお知らせください。

続きを読む