0から始まる整数の連番0, 1, 2, 3, 4, 5,・・・を3で割ると、3の倍数が登場するごとに割り切れます。そして、3で割ったときの答えをINT関数を用いて小数点以下を切り捨てると、0, 0, 0, 1, 1, 1,・・・のように、3つずつ同じ数が連続する数列になります。
これを利用すると、連番を複数列に並べた場合の行数を求めることができます。
そこで今回は、INT関数で割り算の答えを求めることで同じ数が何回か繰り返される数列を作る方法について出題します。
目次
1.INT関数の基本
INT関数の基本についてはこちらの記事をご覧ください。
2.1から始まる連番と0から始まる連番の違い
問題
A列に1から始まる連番、D列に0から始まる連番を入力した。それぞれ3で割ったときの商を求めなさい。また、どちらのほうがより規則的と言えるか。
解説
3で割ります。3で割ると2つおきに整数が現れます。
3で割ることによって数直線の目盛間隔が3倍になります。この性質を利用して、3つずつ連続する数列に変換することができます。
3で割ったときの商は、3で割ったときの答えの小数部分を切り捨てた値です。INT関数を挿入します。
- =INT(A1/3)
E列にコピーします。
3で割ったときの商は、必ず3つずつ同じ数が連続します。Nで割ったときの商は、必ずN個ずつ同じ数が連続します。
そして、最初の部分を比較すると、0からスタートしたほうが、0が3つ並ぶのでより規則的と言えます。
3.同じ数が何個か連続する数列を作る
問題
0から始まる連番を入力した。これを利用して、1, 1, 1, 2, 2, 2, ・・・のように同じ数が3つずつ連続する数列を作りなさい。また、4から始まり5つずつ連続する数列を作りなさい。
解説
INT関数を挿入します。3で割ります。
0, 0, 0, 1, 1, 1・・・から始まり、3つずつ同じ数が連続する数列になります。
これに1を足すと、1から始まる数列になります。
- =INT(A1/3)+1
INT関数を使うと、同じ数が何個か連続する数列を作ることができます。
0から始まる連番を、同じ数がN個連続する数列に変換するには、Nで割ってINTで切り捨てて、開始番号を足します。
INT関数を挿入します。5で割ります。
4から始まるので、4を足します。これで完成です。
- =INT(A1/5)+4
3.間隔を変える
問題
1から始まる連番を入力した。これを利用して、1, 1, 1, 1, 3, 3, 3, 3, ・・・のように同じ奇数が4つずつ連続する数列を作りなさい。
解説
1から始まる連番は、1を引くことで0から始まる連番になります。前述のように、同じ数を複数個繰り返す数列を作る場合、連番は0から始めたほうが規則的となります。
1から始まる連番の場合は1を引き、Nから始まる連番はNを引くことで、開始番号を0にしてから考えます。
INT関数を挿入します。
かっこを付けて1を引きます。4で割ります。4で割ることで4つずつ同じ番号を繰り返す数列になります。
- =INT((A1-1)/4)
1を足します。
- =INT((A1-1)/4)+1
1から始まる連番を、同じ数がN個連続する数列に変換するには、1を引いてから、Nで割ってINTで切り捨てて、開始番号を足します。
INT関数を2倍します。奇数になります。これで完成です。
- =INT((A1-1)/4)*2+1
INT関数を2倍すると間隔が2倍になります。INT関数を3倍すると間隔が3倍になります。INT関数をX倍すると間隔がX倍になります。
4.行数の求め方
(1)連番
問題
A~F列に、1001から始まる連番を横向きに入力した。セルH1に入力した値が何行目に入力されているかを調べたい。セルH2に数式を入力して行数を求めなさい。
解説
1001から始まる連番が6列で入力されています。例えば、1035は、6行目に入力されています。この行数を計算で求めようとしています。
ところで、この最初の番号である1001を引くと、0から始まる連番になります。
- =各数字-1001
6で割って、小数点以下を切り捨てると6個ずつ同じ数字が連続する数列になります。
- =INT((各数字-1001)/6)
1を足すと行番号と一致する数列になります。
- 行番号=INT((各数字-1001)/6)+1
INT関数を挿入します。
先頭のセルであるA1を引いて、6で割ります。
- =INT((H1-A1)/6)
1を足します。410行目となります。
- =INT((H1-A1)/6)+1
実際に、410行目に3456があります。
このように複数列で横向きに並べた連番の行番号を求めるにはINT関数を使います。
(2)日付
問題
A~G列に、2024/1/1から始まる日付を2行空けながら横向きに入力した。セルJ1に入力した値が何行目に入力されているかを調べたい。セルJ2に数式を入力して行数を求めなさい。
解説
日付もシリアル値と呼ばれる連番で管理されています。したがって、先頭であるセルA1を引くと、先頭の日付からの経過日数になります。0から始まる連番になっています。したがって、さきほどの問題と同様に行数を求めることができます。
INT関数を挿入します。
先頭のセルA1を引いて、7で割ります。
- =INT(J1-A1)/7)
行番号の間隔は3行なので、INT関数を3倍します。1を足します。352行目となります。
- =INT(J1-A1)/7)*3+1
実際に、352行目に2026年3月31日があります。
解説は以上です。