いきなり答える備忘録

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

(Gスプレッドシート)九九の表を作る

 Googleスプレッドシートで九九の計算を表にする方法についてです。
 一般に絶対参照と相対参照について学ぶ際の好例とされていますが、ことGoogleスプレッドシートにおいて、それに縛られる必要はありません。

  • 単に9×9の表が欲しいのであればフィルコピーによって作成するのが早いです。
  • 縦横に1…9の数値が与えられていて、それに基づき計算するのであればARRAYFORMULA関数による方法や、MMULT関数による方法が考えられます。

手順

フィルコピーで作成する例

f:id:accs2014:20190608213806p:plain:right:w600

 計算がしたいんじゃなくて表が欲しいんだという場合です。
 セルC3,D3,C4,D4にそれぞれ1,2,2,4と入力します。

f:id:accs2014:20190608213802p:plain:right:w600

 そしてこの4セルを選択した状態でフィルコピーすると完成します。

ARRAYFOMULA関数を用いる例

f:id:accs2014:20190608213758p:plain:right:w600

 ここではB3:B11とC2:K2にそれぞれ1から9の数字が与えられているものとします。
 そこでC3セルに次のように入力します。

=ARRAYFORMULA(B3:B11*C2:K2)

f:id:accs2014:20190608213755p:plain:right:w600

 この式を実行(Enter)するだけで完成です。
 「B3:B11*C2:K2」のところを「C2:K2*B3:B11」としても問題ない(たまたまB3:B11とC2:K2に同じ1~9が記録されているからではなく、どのような数値が入力されていても正解になります)のがいいところで、最も有力な方法です。

MMULT関数を用いる例

f:id:accs2014:20190608213752p:plain:right:w600

 ここでもB3:B11とC2:K2にそれぞれ1から9の数字が与えられているものとします。
 そこでC3セルに次のように入力します。

=MMULT(B3:B11,C2:K2)

 関数名が短いため、表記は上の例より短くなります。
 行列計算の関数なのでこちらの方がなじみやすい方もおられるかと思いますが、引数を逆にしてしまうと(「B3:B11,C2:K2」のところを「C2:K2,B3:B11」)ただの数値(ここでは「285」)が返ってしまうところが注意点です。

f:id:accs2014:20190608213834p:plain:right:w600

 実行結果です。