0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EXCELのスピル関数群を使って、縦に長いデータを段組みして表示させる

Last updated at Posted at 2025-01-09

やりたいこと

縦に長いデータを1段当たりの行数を指定して段組みする

サンプル

A1:C12のデータに対してE1セルに関数を入力して5行ごとのデータに段組みする
image.png

セル関数

= LET(
行数, 5,
範囲, A1:C12,
列数, COLUMNS(範囲),
段数, ROUNDUP(ROWS(範囲)/行数,0),
拡張範囲, EXPAND(範囲,行数*段数,列数,""),
新範囲, WRAPCOLS(TOCOL(拡張範囲,,TRUE),行数),
列順, TOROW(SEQUENCE(列数,段数),,TRUE),
CHOOSECOLS(新範囲,列順)
)

数式の解説

項目 数式 説明
行数 5 1段当たりの行数を指定
範囲 A1:C12 段組み対象の元の範囲を指定
列数 COLUMNS(範囲) 1段あたりの列数を計算
段数 ROUNDUP(ROWS(範囲)/行数,0) 指定行数から段数を計算
拡張範囲 EXPAND(範囲,行数*段数,列数,"") 全体の行数が指定行数の倍数になるように空白行を追加
新範囲 WRAPCOLS(TOCOL(拡張範囲,,TRUE),行数) 全体を1列に変換した後、指定行数ごとの範囲に再変換
列順 TOROW(SEQUENCE(列数,段数),,TRUE) CHOOSECOLSに与える列の並び順の配列を作成
完成 CHOOSECOLS(新範囲,列順) 並び替えた列順で最終的な並びを完成

数式の補足説明

行数・範囲

こちらの値を、データに合わせてその都度変更してください
例では元の列は3列ですが、汎用的になっているので、何列でもその列数にあわせて段組みするようになっています

新範囲

image.png

列順

image.png
自分で言うのもなんですが、この発想はかなりイケてると思いませんか?
そう思ってくださる人がもしおられましたら、コメントやいいねお願いします

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?