Excelの「パワークエリ」機能を使って、時間の平均を計算し、列として追加したいと思い、今回その方法を学習・実装しました。
特に、「mm:ss.0」といったユーザー定義形式のデータを対象に処理を行いたいケースにおいて有効な手法です。
実現したい内容
- 時間データが「mm:ss.0」形式で記録されている
- このデータを秒に変換して平均値を求めたい
- 平均値を新しい列として追加し、クエリ上で扱えるようにしたい
秒に変換する関数を定義する
Power Query(M言語)で、まずは時間文字列を数値(秒単位)に変換する関数を作成します。
以下がそのコードです。
let
// 時間データを秒に変換する関数の定義
ConvertTimeToSeconds = (timeText as text) as number =>
let
TimeParts = Text.Split(timeText, ":"),
Minutes = Number.From(Text.Start(TimeParts{0}, 2)),
SecondsAndMilliseconds = Text.Split(TimeParts{1}, "."),
Seconds = Number.From(SecondsAndMilliseconds{0}),
Milliseconds = if List.Count(SecondsAndMilliseconds) = 2 then Number.From(SecondsAndMilliseconds{1}) / 1000 else 0,
TotalSeconds = Minutes * 60 + Seconds + Milliseconds
in
TotalSeconds
in
ConvertTimeToSeconds
コードの解説
Text.Split(timeText, ":")
で分を抽出Text.Split(..., ".")
で秒とミリ秒を分割Number.From(...)
で文字列を数値に変換- 分・秒・ミリ秒をすべて足し合わせて、1つの「秒数データ」に変換しています
平均値の計算と列への追加方法(概要)
この関数を定義した後、以下のような手順で処理を進めます。
- 元のテーブルに新しいカラムを追加
ConvertTimeToSeconds([時間列])
を使って各行の秒数を算出- カスタム列として追加された秒データの平均を取得
- 必要であれば、再度「mm:ss.0」形式へフォーマット変換も可能
※ 本記事では「関数定義」までを中心に扱っており、後続のステップについては別記事にて補足可能です。
まとめ
Power Queryを使えば、Excel上で「mm:ss.0」形式の時間データを秒単位に変換し、数値として扱う処理が可能です。
関数を定義してしまえば、以降は非常に柔軟な集計・平均処理が行えます。
- カスタム関数で秒数に変換
- 平均値や合計値も簡単に計算可能
- 数値形式で扱うことで、統計処理やフィルタ処理の精度が向上
本記事の内容が、同様の作業に取り組む方の参考になれば幸いです。
最後までお読みいただき、ありがとうございました。
スクールの紹介
最後に宣伝をさせてください。
技術で未来を切り拓く―あなたの夢を現実にするプログラミングスクール
Webデザインやプログラミングで成功を目指している方々にとって、このオンラインスクールは夢を叶えるための最適な場所です。皆さんのキャリアを次の段階へと引き上げるためにデザインされたこのスクールは、一人ひとりの成功を心から願い、それを実現するための全てを提供しています。ここでは、このスクールの魅力について詳しくご紹介します。
◆圧倒的な費用対効果
このオンラインプログラミングスクールは、Web系教育において最高の費用対効果を提供しています。多くの高額スクールが存在する中で、ここではリーズナブルな価格で、質の高い教材、無限のサポート、そして実際に市場で求められるスキルの習得機会を提供しています。
◆現役フリーランスの講師陣
講師たちは全員、現役のフリーランスプロフェッショナルです。市場で活躍している講師から直接、最新のトレンドや実践的なスキルを学べるのは、このスクールの大きな特徴です。
◆柔軟な学習コース
固定のコースがなく、学習者の興味やニーズに応じて自由に学習できます。進路変更も自由で、最低契約期間は1ヶ月という柔軟性を持っています。自分のペースで、自分に合った学習が可能です。
◆無制限の添削とサポート
理解できるまで、そして満足するまで、無制限に添削と質問への回答を提供しています。進路相談や技術面以外の相談にも対応しており、全面的にサポートします。
◆社長から学べる貴重な機会
デザイナー、プログラマー、ディレクター、マーケターとして豊富な経験を持つ社長から直接学べるのも、このスクールの特別な点です。他のスクールでは得られない、貴重な機会です。
◆実績作りへの徹底的なサポート
就職、転職、フリーランスとして成功するためには、高品質な実績が必要です。生徒の作品レベルを最大限に高め、市場で求められる実績を作り上げることに力を入れています。案件を取得できない生徒には、直接案件を提供することもあります。
◆メッセージからの約束
高額な授業料を支払わせて結果を出せないスクールとは違い、物理的なサポートは提供できないかもしれませんが、継続的な努力を通じて最高の結果を出せるようにサポートします。一緒に不正なスクールを撲滅し、あなたの夢を実現しましょう。
このプログラミングスクールは、Webデザインやプログラミングでの成功を目指す方々に必要な全てを備えています。今こそ、このコミュニティに参加し、あなたのキャリアを加速させる時です。
詳しくはこちら↓