表形式のデータを列ごとに縦1列に取り出して並べる

表形式のデータを「行ごとに」1列に並べる方法は以前こちらで照会しました。
表形式のデータを行ごとに縦1列に取り出して並べる

今回は「列ごとに」縦1列に取り出して並べたいと思います。

下図のように左側にある表が「列ごとに」縦1列に取り出されています。

72

式はこちら・・・



式は以下のようになります。

=INDEX($A$2:$C$6,MOD(ROW(A1)-1,5)+1,INT((ROW(A1)-1)/5)+1)

 

「参考」
表が増えた場合は「$A$2:$C$6」部分のセル範囲を修正し、「5」の部分を2つとも修正してください。

例えば「A$2:$C$7」の範囲になったら表の行数としては6行分になるので、「6」と修正します。
参考までに、以下のような式になります。
=INDEX($A$2:$C$7,MOD(ROW(A1)-1,6)+1,INT((ROW(A1)-1)/6)+1)

 

※それぞれの関数

・INDEX 取り出したい表の範囲を指定します

・ROW 行番号を返します

・MOD 指定した数値で割り算して、余りの数値を返します

・INT 小数点以下を切り捨て、整数で返します

MOD(ROW(A1)-1,5)+1 ・・・(行番号-1)を5で割った余りを出して、プラス1

INT((ROW(A1)-1)/5)+1 ・・・(行番号-1)/5の結果を整数で切り捨て、プラス1

INDEXの行指定の部分がMODの結果で、列指定の部分がINTの結果です。

以上