整数(小数点以下の桁数:0)以外で切り捨てを行いたい場合、どうしたら良いですか?
では、詳細を解説していきますね。
目次[閉じる]
はじめに
この記事は「切り捨て」・「カスタム列」コマンドの詳細を把握していることが前提です。
「切り捨て」・「カスタム列」コマンドの詳細は、以下の記事をご参照ください。 【パワークエリ】数値列を対象に自動で端数処理できる「四捨五入」・「切り上げ」・「切り捨て」の使い方 [char no="3" char="Aさん"]表の数値の列を対象に四捨五入等の端数処理を行いたいです。Power Queryエディター上で端数処理を行う場合、・・・ 【パワークエリ】表へ任意の数式をセットした計算列の追加を自動化できる「カスタム列」の使い方 [char no="3" char="Aさん"]表の数値の列を対象に、「単価×数量×(1-割引率)」みたいな計算を行いたいです。Power Queryエディター・・・![]()
![]()
「Number.RoundDown」の使いどころ
通常、クエリ内の一連の整形作業の中で、切り捨てを行いたい場合、Power Queryエディター上の「切り捨て」コマンドを使います。
しかし、「切り捨て」コマンドは、切り捨ての対象桁数を指定できず、整数(小数点以下の桁数:0)への切り捨てのみが可能という制約があります。
一方、同じ切り捨てを行う機能であるワークシート上の関数のROUNDDOWNは、整数の位や小数点以下の桁数も任意に指定可能なため、「切り捨て」コマンドはROUNDDOWNと同じ要領で使えないことに留意してください。
Power Queryエディター上でも任意の桁数で切り捨てを行いたい場合、「カスタム列」ダイアログ上で「Number.RoundDown」を活用しましょう。
Number.RoundDownを活用することで、指定の数値列を任意の桁数で切り捨てできます。
構文
Number.RoundDownの構文は以下の通りです。
Number.RoundDown ( number , [digits] )
次に小さい数値を返します。桁数は指定できます。
| 引数名 | 必須 | データ型 | 説明 |
|---|---|---|---|
| number | ○ | 数値 | 切り捨てしたい数値列を指定します。 |
| digits | – | 数値 | 切り捨ての結果の桁数を指定します。 |
引数「number」がnullの場合、Number.RoundDownの戻り値もnullを返す。
引数「number」に数値以外を指定した場合、Number.RoundDownの戻り値はエラー値「Error」を表示。
引数「digits」を省略時、切り捨ての結果は整数(小数点以下の桁数:0)となる。
必要に応じ、Microsoft Learnの「Number.RoundDown」の記事もご参照ください。 Number.RoundDown - PowerQuery M 詳細情報: Number.RoundDown
【参考】引数「digits」の指定パターン
引数「digits」は、ワークシート関数のROUNDDOWNと同様に正負どちらの整数も指定できます。
一例として、この引数を「-2」と「2」をそれぞれ設定した結果が以下です。
このように、整数部分の端数処理も可能です。
ワークシート上の関数の「ROUNDDOWN」の詳細は、以下の記事をご参照ください。 【関数】数値データを指定した桁数に切り捨てできる「ROUNDDOWN」の使い方 はじめにこの記事は関数の概要を把握していることが前提です。参考記事関数の概要については以下の記事をご参照ください。数値データを切り捨てしたい場合は「ROUNDD・・・![]()
数式例・使用イメージ
「割引後金額」列を少数点以下の桁数を「1」で切り捨てしたイメージが以下です。
カスタム列で参照している数値列は不要であれば別途削除してください。
ステップ登録手順
「カスタム列」コマンドでNumber.RoundDownを登録したい場合は、以下の手順となります。
- リボン「列の追加」タブをクリック
- 「カスタム列」をクリック
- 任意の列名を入力
※今回は「切り捨て」 - 「n」を入力
- サジェストから「RoundDown」を選択し、「Tab」キーで確定
- 「(」を入力
- 切り捨てたい数値列を選択
※今回は「割引後金額」列 - コンマ(m)を入力
- 任意の桁数を入力
※今回は「1」 - 「)」を入力
- 「OK」をクリック
手順②以降、IMEを半角英数モードにすること。
登録したステップの変更手順
Number.RoundDownのステップを後から変更する場合、以下の手順となります。
- 「追加されたカスタム列」ステップの歯車マークをクリック
- 任意の箇所を修正
- 「OK」をクリック
手順①のステップ名は「カスタム列」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「カスタム列」ダイアログは、ステップに設定した内容がセットされた状態。
【応用】「切り捨て」コマンドの数式修正でも対応可能
「カスタム列」コマンドにNumber.RoundDownの数式を登録する以外にも、「切り捨て」コマンドで登録されたステップの内容を数式バーで修正し、切り捨ての桁数を変更する方法もあります。
「切り捨て」コマンドを実行すると自動的にNumber.RoundDownが数式に組み込まれる。
ステップを増やさずに数値列を上書きたい場合等、こちらの方法がお手軽です。
カスタム列の方法に慣れたら、こちらの方法にもチャレンジしてみてください。
なお、具体的な数式の修正方法は、以下の通り数式中の「Number.RoundDown」の前に「each」を、後に「(_ , -1)」等の引数を付加すればOKです。
以下数式は、リボン「変換」タブの「切り捨て」コマンドを登録した場合のもの。
【修正前の数式】
↓
【修正後の数式】
リボン「列の追加」タブの「切り捨て」コマンドの場合、数式中に「each」も記録されている。
Number.RoundDownの第2引数(digits)は、任意の桁数を指定。
「Int64.Type」は整数のデータ型のため、Number.RoundDownで小数点以下の桁数に切り捨てる場合は、念のため「type number」(データ型:10進法)へ書き換えること。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_Number.RoundDown.xlsx
サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。
ブックを開いたら、「売上明細」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。
- リボン「列の追加」タブをクリック
- 「カスタム列」をクリック
- 任意の列名を入力
※今回は「切り捨て」 - 「n」を入力
- サジェストから「RoundDown」を選択し、「Tab」キーで確定
- 「(」を入力
- 切り捨てたい数値列を選択
※今回は「割引後金額」列 - コンマ(m)を入力
- 任意の桁数を入力
※今回は「1」 - 「)」を入力
- 「OK」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
Number.RoundDownを活用することで、指定の数値列を任意の桁数で切り捨てできます。
一連の整形作業の中で、整数以外の切り捨てを処理したい場合に活用してみましょう!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m
具体的には、数値の四捨五入ができる「Number.Round」や、数値の切り上げができる「Number.RoundUp」等です。
他にどんなM関数があるかは、Microsoft Learnの「Power Query M関数参照」も参照してみてくださいね!


コメント Comments
コメント一覧
コメントはありません。
トラックバックURL
https://excel-master.net/data-shaping/power-query-m-function-number-rounddown/trackback/