ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

LibreOffice 6 Calc - セルの相対参照と絶対参照

LibreOfficeもしくはApache OpenOfficeのCalcのセルは、Microsoft Excelのセルと同様、列名を示すアルファベットの大文字と行名を示す自然数との組み合わせでA2やB4のように参照することができる。

参照とは、A2やB4などと入力することによってそれらのセルの値を別のところから指し示すことができることを意味する。別のところというのは例えば別のセル。

ただし別のセルにA2やB4などとただ入力するだけではそういう文字列だと認識されてしまう。それが別のセルを指し示す参照であることを示すには、それらの先頭に=をつけてそれが式であることをCalcに知らせる必要がある。要するに=A2や=B4のように入力する。

=A2や=B4のようにセルに入力すると、それが指し示しているA2というセルまたはB4というセルに入力されている値がそこに表示されるようになる。

この参照という機能を使えば、=A2 + B4という式を入力してその答えの値をそのセルに表示させることができる。=A2 + =B4でないことに要注意。=は式の先頭にのみ付ける。

相対参照とはベクトル

実を言えば、A2やB4といったセルの参照方法は相対参照を表わしている。本当は$A2や$B4と表わさなければならない。$A2や$B4とする参照の仕方を絶対参照と呼ぶ。

じゃあ、相対参照と絶対参照では何が違うのか。

相対参照はそれを入力したセルと参照対象になるセルとの間の距離を計っている。

どういうことかと言うと、セル$A2に64という値が入力されていてセル$B4に=A2という式を入力したとする。そうするとセル$B4には64と表示される。ここまでは絶対参照と同じ。

でも実際には=A2は、$A2の場所が$B4から見て左へ1つ、上へ2つ移動したところにあるという相対的な位置関係によって参照している。相対参照とはシートを平面上のデジタル的な座標と考えた場合のデジタル的なベクトルのようなもの。

相対参照であることはその式をコピーしたときにはっきりと分かる。

セル$B4に入力した式=A2を別のセル、例えば$C3というセルにコピーしてみる。そうすると、コピーした式が自動的に=B1に変わってしまう。相対参照ではその式が文字通りにコピーされない。参照先が変わってしまう。

LibreOffice Calc's cells
A B C
1
2 64 =B#REF!
3 =B1
4 =A2

※ 実際のセルには式は表示されず、その結果である数値が表示される。

セル$C3に何がコピーされたかと言えば、$C3から見て左へ1つ、上へ2つ移動したところにあるセルである$B1になる。

同様のコピーを今度はセル$C2に対して行うと=B#REF!がコピーされてしまう。これは相対参照先のセルが存在しないことを意味している。

絶対参照による式を使えばこういうことは起きない。次は絶対参照で同じことをした例。

LibreOffice Calc's cells
A B C
1
2 64 =$A2
3 =$A2
4 =$A2

相対参照を用いると集計が非常に便利。セル$C1の式=A1+B1をそれ以下にコピーすれば、相対的参照が適用され、それぞれの行の集計を行ってくれる例が次のとおり。

LibreOffice Calc's cells
A B C
1 5 10 =A1+B1
2 2 5 =A2+B2
3 7 8 =A3+B3
4 2 8 =A4+B4
5 =SUM(C1:C4)

コメント

このブログの人気の投稿

Visual Studio 2019にはC++のためのフォームデザイナーがない件

10の補数と9の補数と2の補数と1の補数

LibreOffice 6 Calcでフォーム(ダイアログ)を作成してマクロで表示