いきなり答える備忘録

Google Workspace・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!エラーになってしまうため、値として貼り付け直さないと表として使い物になりませんが、参考まで。