パワークエリのM関数「Number.RoundUp」のサムネイル
AさんAさん

Power Queryエディター上の「切り上げ」コマンドだと、ワークシート関数のROUNDUPと違い、整数(小数点以下の桁数:0)にしか切り上げができません。。
整数(小数点以下の桁数:0)以外で切り上げを行いたい場合、どうしたら良いですか?

森田森田

その場合、M関数の「Number.RoundUp」を使えば良いですよ!
では、詳細を解説していきますね。

はじめに

この記事は「切り上げ」・「カスタム列」コマンドの詳細を把握していることが前提です。

参考記事

「切り上げ」・「カスタム列」コマンドの詳細は、以下の記事をご参照ください。


「Number.RoundUp」の使いどころ

通常、クエリ内の一連の整形作業の中で、切り上げを行いたい場合、Power Queryエディター上の「切り上げ」コマンドを使います。

しかし、「切り上げ」コマンドは、切り上げの対象桁数を指定できず、整数(小数点以下の桁数:0)への切り上げのみが可能という制約があります。

一方、同じ切り上げを行う機能であるワークシート上の関数のROUNDUPは、整数の位や小数点以下の桁数も任意に指定可能なため、「切り上げ」コマンドはROUNDUPと同じ要領で使えないことに留意してください。

Power Queryエディター上でも任意の桁数で切り上げを行いたい場合、「カスタム列」ダイアログ上で「Number.RoundUp」を活用しましょう。

パワークエリのM関数「Number.Round」の使いどころ

Number.RoundUpを活用することで、指定の数値列を任意の桁数で切り上げできます。

構文

Number.RoundUpの構文は以下の通りです。

Number.RoundUp ( number , [digits] )
次に大きい数値を返します。桁数は指定できます。

引数名 必須 データ型 説明
number 数値 切り上げしたい数値列を指定します。
digits 数値 切り上げの結果の桁数を指定します。

引数「number」がnullの場合、Number.RoundUpの戻り値もnullを返す。
引数「number」に数値以外を指定した場合、Number.RoundUpの戻り値はエラー値「Error」を表示。
引数「digits」を省略時、切り上げの結果は整数(小数点以下の桁数:0)となる。

参考記事

必要に応じ、Microsoft Learnの「Number.RoundUp」の記事もご参照ください。

【参考】引数「digits」の指定パターン

引数「digits」は、ワークシート関数のROUNDUPと同様に正負どちらの整数も指定できます。

一例として、この引数を「-2」と「2」をそれぞれ設定した結果が以下です。

パワークエリのM関数「Number.RoundUp」の引数「digits」の指定パターン

このように、整数部分の端数処理も可能です。

参考記事

ワークシート上の関数の「ROUNDUP」の詳細は、以下の記事をご参照ください。

数式例・使用イメージ

「割引後金額」列を少数点以下の桁数を「1」で切り上げしたイメージが以下です。

パワークエリのM関数「Number.RoundUp」の数式例・使用イメージ

カスタム列で参照している数値列は不要であれば別途削除してください。

ステップ登録手順

「カスタム列」コマンドでNumber.RoundUpを登録したい場合は、以下の手順となります。

パワークエリのM関数「Number.RoundUp」のステップ登録手順

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「切り上げ」
  4. 「n」を入力
  5. サジェストから「RoundUp」を選択し、「Tab」キーで確定
  6. 「(」を入力
  7. 切り上げたい数値列を選択
    ※今回は「割引後金額」列
  8. コンマ(,)を入力
  9. 任意の桁数を入力
    ※今回は「1」
  10. 「)」を入力
  11. 「OK」をクリック

手順②以降、IMEを半角英数モードにすること。

登録したステップの変更手順

Number.RoundUpのステップを後から変更する場合、以下の手順となります。

パワークエリのM関数「Number.RoundUp」のステップ変更手順

  1. 「追加されたカスタム列」ステップの歯車マークをクリック
  2. 任意の箇所を修正
  3. 「OK」をクリック

手順①のステップ名は「カスタム列」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「カスタム列」ダイアログは、ステップに設定した内容がセットされた状態。

【応用】「切り上げ」コマンドの数式修正でも対応可能

「カスタム列」コマンドにNumber.RoundUpの数式を登録する以外にも、「切り上げ」コマンドで登録されたステップの内容を数式バーで修正し、切り上げの桁数を変更する方法もあります。
「切り上げ」コマンドを実行すると自動的にNumber.RoundUpが数式に組み込まれる。

ステップを増やさずに数値列を上書きたい場合等、こちらの方法がお手軽です。

カスタム列の方法に慣れたら、こちらの方法にもチャレンジしてみてください。

なお、具体的な数式の修正方法は、以下の通り数式中の「Number.RoundUp」の前に「each」を、後に「(_ , -1)」等の引数を付加すればOKです。
以下数式は、リボン「変換」タブの「切り上げ」コマンドを登録した場合のもの。

「切り上げ」コマンドの数式修正方法

【修正前の数式】

= Table.TransformColumns(変更された型,{{“割引後金額”, Number.RoundUp, Int64.Type}})

【修正後の数式】

= Table.TransformColumns(変更された型,{{“割引後金額”, each Number.RoundUp(_, -1), Int64.Type}})

リボン「列の追加」タブの「切り上げ」コマンドの場合、数式中に「each」も記録されている。
Number.RoundUpの第2引数(digits)は、任意の桁数を指定。
「Int64.Type」は整数のデータ型のため、Number.RoundUpで小数点以下の桁数に切り上げる場合は、念のため「type number」(データ型:10進法)へ書き換えること。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_Number.RoundUp.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、「売上明細」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「切り上げ」
  4. 「n」を入力
  5. サジェストから「RoundUp」を選択し、「Tab」キーで確定
  6. 「(」を入力
  7. 切り上げたい数値列を選択
    ※今回は「割引後金額」列
  8. コンマ(,)を入力
  9. 任意の桁数を入力
    ※今回は「1」
  10. 「)」を入力
  11. 「OK」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

Number.RoundUpを活用することで、指定の数値列を任意の桁数で切り上げできます。

一連の整形作業の中で、整数以外の切り上げを処理したい場合に活用してみましょう!

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

Number.RoundUpに慣れたら、他の数値列の計算に役立つM関数もチャレンジしてみましょう。
具体的には、数値の四捨五入ができる「Number.Round」や、数値の切り捨てができる「Number.RoundDown」等です。
他にどんなM関数があるかは、Microsoft Learnの「Power Query M関数参照」も参照してみてくださいね!