いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Excel)1列に並んだ値を斜めに並べる

 Excelで1列に並んでいるデータを、関数を使って斜め方向に並べなおす方法についてです。

  • 対角行列とINDEX関数を用いることで、1列並んでいる値を斜めに並べることができます。

手順

 いきなりですが結果です。
 画像ではB3:B7に並んでいる5つの値を、D3セルに式を入力することにより斜めに並べなおしています。

f:id:accs2014:20200704201340p:plain:w750

 D3セルの式の内容は次のようなものです。

=IFERROR(INDEX(B3:B7,TEXT(SEQUENCE(5)*MUNIT(5),"#")),"")

 「SEQUENCE(5)*MUNIT(5)」の部分で、対角成分が1,2,3,4,5で他はすべて0になる対角行列を生成しています。この方法の詳細については次の記事で紹介しています。

www.officeisyours.com


 あとはINDEX関数と組み合わせてB3:B7の値を取り出しているだけですが、INDEX関数は第2引数が0のときでも値を取り出してしまうためそれを避けるため0を空文字列に置き換えるなど、若干面倒な処理になっています。
 なんといっても空白セル部分に上書きすると#SPILL!エラーになってしまうため、値として貼り付け直さないと表として使い物ならないのが惜しいところですが、参考まで。