表形式のデータを「行ごとに」1列に並べる方法は以前こちらで照会しました。
「表形式のデータを行ごとに縦1列に取り出して並べる」
今回は「列ごとに」縦1列に取り出して並べたいと思います。
下図のように左側にある表が「列ごとに」縦1列に取り出されています。
式はこちら・・・
式は以下のようになります。
=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の結果です。
以上