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スキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
