こんにちは、スプレッドシートが大好きなたぬ(@tanuhack)です!
配列や行列という言葉を聞くだけで、理系脳が燻られますね!笑
スプレッドシートで配列や行列について書かれている記事がなかったので、まとめました。
今回は、スプレッドシートで配列や行列を作成する方法を紹介します。
「なぜ、スプレッドシートで配列や行列を使うのか?」という質問は、この記事の理解の範疇を超えているので割愛させてください。
スプレッドシートで配列や行列を使うメリットは多いにあります。ですが、その内容に関しては別記事にまとめるので、そちらをご覧ください。
この記事では、あくまでスプレッドシートで配列や行列の作成方法だけを紹介します。あしからず。
目次
1次元配列
1次元配列とは、1行n列で表される行列のことを言います。
,(カンマ)を使う
a,b,cは文字列でも可。ただし、行列の計算はできなくなる。
スプレッドシートでは、数式内に{}を使用して配列を作ることが出来ます。
,(カンマ)で値を区切ると、カンマごと値が新しい列に配置されるようになります。
関数を使う
スプレッドシートでは、{}以外にも関数を使用して、無理やり1次元配列を作成することも出来るんですよ!
今回は2種類の方法を紹介します。
①ARRAYFORMULA関数とCOLUMN関数を組み合わせる
- ARRAYFORMULA関数:配列数式を作成する関数
スプレッドシートの『ARRAYFORMULA』関数を使って表示速度を高速化させよう!check - COLUMN関数:対象の列番号を取得する関数
②REPT関数とSPLIT関数の合わせ技
- REPT関数:テキストを任意の数繰り返す関数
- SPLIT関数:テキストを決められた文字列で分割する関数
2次元配列
2次元配列とは、配列の中に配列が入っている配列のことを言います。
;(セミコロン)を使う
;(セミコロン)で1次元配列を区切ると、セミコロンごとに1次元配列が新しい行に配置されるようになります。
正方行列を作成する
正方行列とは、n×nで表される縦と横の要素数が等しい行列です。
ちなみに先程の例も4行4列の正方行列になっています。
次は関数を使って、正方行列を作成する方法を紹介します。
関数で正方行列を作成する
正方行列は2次元配列なので、横に加えて高さが追加されます。
1次元配列がARRAYFORMULA関数とCOLUMN関数を使って表現できたので、2次元配列ではそこにROW関数(縦成分)を追加すればいいです。
要素が全て1の正方行列を作成する
先程、関数で正方行列を作成する方法を紹介しました。
ですがこのままだと、計算に使うのには少し不向きなので、要素がすべて1の正方行列を作ってみます。
すべての要素を0乗して、要素が全て1の正方行列を作成することが出来ました。
[応用]特殊な2次元配列
このセクションでは大学の線形代数で習う、少しマニアックな行列について紹介します。
(今は高校数学で習うみたいですね!僕はゆとり真っ只中だったので、大学時代に習いました)
逆行列を作成する
スプレッドシートで逆行列を表示させるためには、MINVERSE関数を使います。
正則行列:det(A)≠0を満たす正方行列
単位行列を作成する
しかし、スプレッドシートでは単位行列を出してくれる関数は存在しません(※2018年10月6日現在)
なので先程求めた、逆行列を使って単位行列を導き出す必要があります。
つまり単位行列は、行列Aと逆行列Aの内積で求めることが出来ます。
=MMULT(行列A,逆行列A)
=単位行列E
転置行列
スプレッドシートで転置行列(行と列の入れ替え)を求める関数は、TRANSPOSE関数です。
さいごに
今回は、スプレッドシートで配列や行列を作る方法を紹介しました。
あえて配列や行列を使うメリットは紹介していませんが、その内容は後日、ということで…。
それでは。