この記事では、小数点以下を切り捨てて整数を求めるのが、ROUNDDOWN関数よりも簡単なINT(イント)関数を、実践例を5例挙げて紹介します。
また、ROUNDDOWN関数と小数点以下を切り捨てた結果が異なるパターンも併せて紹介します。
記事内ではExcelで金種表を作成しています。Excel版の金種表が必要な方はどうぞ。
→記事内で作成する[Excel金種表]
小数点以下を切り捨て整数を返す
INT関数の書式
INT(イント)関数は引数に指定した「数値」の小数点以下を切り捨てて整数にする関数です。
ROUNDDOWN関数のように桁数を指定する必要がない分、簡単です。
INT関数の書式 |
INT( 数値 ) |
負の値の扱いに注意
INT関数は、引数に指定した「数値」以下で「数値」に最も近い整数を返します。
INT関数やROUNDDOWN関数で正の値を整数にするときは同じ結果になりますが、負の値を整数にするときは結果が異なるので注意が必要です。
例えば、「2.7」という正の値をINT関数やROUNDDOWN関数で整数にすると、いずれも「2」が返されます。
一方、「-2.7」という負の値をINT関数で整数にすると「-3」が返されるのに対し、ROUNDDOWN関数では「-2」が返されます。
これは、INT関数では、もともとの数値を超えない整数が返されるためです。
金種表を作成する
従業員の給与を現金で支給する場合に、どの金種を何枚ずつ用意するかを記した金種表を作りますよね。
この金種表をExcelのINT関数を使って、作ってみましょう。
1万円札の枚数
1万円札の枚数は、給与を10,000で割った商の整数部分です。
例えばB1セルの「89,700円」の場合、「89,700(B1セル)÷10,000(A2セル)=8.97」なので8枚となります。
したがって、B2セルには、=INT(B$1/$A2) と入力します。
1行目を固定したいので1の前に[$]をつけます。
またA列を固定したいので、Aの前に[$]をつけます。
5千円札の枚数
5千円札の枚数は、給与を10,000で割った余りを、5,000で割った商の整数部分です。
例えばB1セルの「89,700円」の場合、10,000で割った余りは「9,700円」なので、「9,700÷5,000(A3セル)=1.94」で1枚となります。
したがって、B3セルには、余りを求めるMOD(モッド)関数を組み合わせて、=INT(MOD(B$1,$A2)/$A3) と入力します。
MOD関数の書式 |
MOD( 数値 , 除数 ) |
残りのセルに数式をコピーする
千円札、500円玉、100円玉、50円玉、10円玉、5円玉、1円玉の枚数は、B3セルの式をコピーします。
E列にはSUM関数を入力し、枚数をわかりやすくして、金種表の完成です。
四半期別集計に必要な値を求める
日付のデータから、第1四半期を4~6月、第2四半期を7~9月、第3四半期を10~12月、第4四半期を1~3月として集計するために必要な「1」~「4」の数値を取り出せるようにします。
取り出すためには、INT関数、MOD関数、MONTH関数を組み合わせます。
A列に日付のデータが入力されている場合、B2セルには、=INT(MOD(MONTH(A2)-4,12)/3+1) と入力します。
この式をコピーすると、四半期別集計に必要な「1」~「4」の数値が取り出せます。
ここでは、INT関数を使った方法を紹介しましたが、CHOOSE関数を使うともっと簡単に取り出せます。
参考
年度の開始月に応じて日付から四半期を求める簡単な方法・CHOOSE関数
年数や月数を繰り上げる
年数と月数が別々のセルに入力されている表では、SUM関数だけでは年数や月数の合計を繰り上げることができません。
年数や月数の合計を繰り上げるためには、月数の合計を12で割った整数部分と余りを利用します。
まずは、月数を求めます。D8セルには、D3セル~D7セルの月数の合計を12で割った余りを求めます。
したがって、D8セルには、=MOD(SUM(D3:D7),12) と入力します。
つぎは、年数を求めます。B8セルには、D3セル~D7セルの月数の合計を12で割り、その整数部分をB3セル~B7セルの年数の合計に足します。
したがって、B9セルには、=SUM(B3:B7)+INT(SUM(D3:D7)/12) と入力します。
日付が月の何週目かを求める
「第3日曜日は特売日」「第2金曜日は埋め立てゴミの日」などという場合、一般的には1日から7日までを第1週、8日から14日までを第2週と数えます。
このようなときは、月初めから7日ごとに週が変わるものとし、日付に6を加えて、7で割った整数部分を求める週と考えます。
したがって、A列に日付が入力されている場合、B2セルには、=INT((DAY(A2)+6)/7) と入力します。
関連記事
- 小数点を切り捨てるROUNDDOWN関数、TRUNC・INT関数との使い分け
- 数値(小数点)を切り上げるROUNDUP関数の使い方
- 四捨五入ができるROUND関数の使い方|桁数の早見表あり
- Excelカレンダー(日曜始まり)の作成方法~DATE/COUNTIF関数