365・LibreOfficeなどに関するメモ2020-01-12(Gスプレッドシート)成分が0と1だけの三角行列を生成するGoogleスプレッドシートGoogleスプレッドシートで、0か1の成分だけからなる上三角行列と下三角行列を作る方法についてです。SEQUENCE関数と大小比較を利用して三角行列を生成できます。手順B2を左上端とする上三角行列と、B8を左上端とする下三角行列を生成するものとします(いずれも5行5列)。B2とB8にそれぞれ次のような式を入力します。B2セル(上三角行列)=ARRAYFORMULA(IF(SEQUENCE(5)<=SEQUENCE(1,5),1,0))5行1列の連番(1~5)と1行5列の連番(1~5)を比較して1と0を出力します。この記し方で5行5列にわたって値が展開されます。B8セル(下三角行列)=ARRAYFORMULA(IF(SEQUENCE(5)>=SEQUENCE(1,5),1,0))上記の式の不等号の向きを逆にしただけで、あとは同じです。対角成分を0にする場合はそれぞれの式の等号を削ります。SEQUENCE関数の部分は{1,2,3,4,5}のように1から始まる配列だけでなく{2,3,4,5,6}でも{2,3,5,7,9}でも、一方的に増加していく配列になっていれば問題ありません。よって、ある行列のサイズに合わせた三角行列を作成する場合はSEQUENCE関数の部分をROW関数(例えば「ROW(B2:B6)」など)やCOLUMN関数に入れ替えればOKです。この行列の応用例としては「累計を求める」というものがあります。詳しくは次の記事で紹介しています。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。