やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Calc セル参照まとめ

 外部ファイルにあるセルや、セル範囲名を参照する方法。

セルを参照する

コード例
1 単一セルを参照する A1
2 複数セルを参照する =A1+C3
3 単一セル範囲を参照する =SUM(A1:B2)
4 複数セル範囲を参照する =SUM(A1:B2, D1:E2)
5 セル範囲名を定義する ``
6 セル範囲名を参照する =SUM(range_name)

'URL'#$シート名.セル名

  • A1, $A$1
  • A1:C3, $A$1:$C$3
  • sheet1.A1
  • sheet1.A1:C3
  • 'file:///tmp/a.ods'#sheet1.A1
  • 'file:///tmp/a.ods'#sheet1.A1:C3
  • 'file:///tmp/a.ods'#$sheet1.$A$1:$C$3
  • 'file:///tmp/a.ods'#RangeName
  • 'http://a.ods'#RangeName

 セルを参照するコードのパターン。

1. 単一セルを参照する

1-1. 同一ファイル同一シート単一セル

  1. セルA12を入力する
  2. セルB1=A1を入力する
  3. セルB1の結果が2と表示される

 絶対参照について。セルB1C1などへコピーしたとき座標が自動でインクリメントされる。それを防ぐためには絶対参照=$A$1とする。なお、=$A1, =A$1のように行と列を個別に絶対・相対指定できる。

コード
A1
A$1
$A1
$A$1

1-2. 同一ファイル別シート

  1. sheet1
    1. セルA12を入力する
  2. sheet2
    1. セルA1=sheet1.A1を入力する
    2. セルA1の結果が2と表示される

1-3. 別ファイル別シート(ローカル)

  1. /tmp/a.odsファイルのsheet1
    1. セルA12を入力する
  2. /tmp/b.odsファイルのsheet1
    1. セルA1='file:///tmp/a.ods'#$sheet1.A1を入力する
    2. セルA1の結果が2と表示される

1-4. 別ファイル別シート(Web)

  1. http://a.odsファイルのsheet1
    1. セルA12を入力する
  2. http://b.odsファイルのsheet1
    1. セルA1='http://a.ods'#$sheet1.A1を入力する
    2. セルA1の結果が2と表示される

2. 複数セルを参照する

  1. セルA12を入力する
  2. セルC13を入力する
  3. セルE1=A1+C1を入力する
  4. セルE1の結果が5と表示される

3. 単一セル範囲を参照する

3-1. 同一ファイル同一シート

  1. セルA12を入力する
  2. セルB13を入力する
  3. セルC1=SUM(A1:B1)を入力する
  4. セルC1の結果が5と表示される

3-2. 同一ファイル別一シート

  1. sheet1
    1. セルA12を入力する
    2. セルB13を入力する
  2. sheet2
    1. セルA1=SUM(sheet1.A1:B1)を入力する
    2. セルA1の結果が5と表示される

3-3. 別ファイル

  1. /tmp/a.odsファイルのsheet1
    1. セルA12を入力する
    2. セルB13を入力する
  2. /tmp/b.odsファイルのsheet1
    1. セルA1='file:///tmp/a.ods'#$sheet1.A1:B1を入力する
    2. セルA1の結果が5と表示される

4. 複数セル範囲を参照する

  1. セルA12を入力する
  2. セルB13を入力する
  3. セルD14を入力する
  4. セルD25を入力する
  5. セルF1=SUM(A1:B1, D1:D2)を入力する
  6. セルF1の結果が14と表示される

5. セル範囲名を定義する

 データを貼り付ける。

Name
山田
鈴木
田中
  1. 上記テキストをコピーする
  2. セルA1にフォーカスする
  3. Ctrl+Vでペーストする
  4. OKボタンをクリックする

 名前を定義する。

  1. セルA1A4を範囲選択する
  2. メニュー→シート名前付きの範囲または式指定
  3. 名前Namesを入力する
  4. 参照範囲または数式が参照したい範囲になっている: $Sheet1.$A$1:$A$4
  5. 範囲ドキュメント(グローバル)になっている
  6. 追加ボタンを押下する

6. セル範囲名を参照する

  • 先述したセル範囲名Namesを定義したファイルを使う

6-1. 同一ファイル同一シート単一セル

  1. セルB1=Namesを入力する
  2. セルB1B4までコピーする
  3. 各行にA1と同じ値が表示される

 なお、B5以降は#VALUE!となる。元データが存在しないため。

6-2. 同一ファイル同一シートセル範囲

  1. セルC1=COUNTA(Names)を入力する
  2. セルC1の結果が4と表示される

6-3. 同一ファイル別シートセル範囲

  1. セル範囲名の元データがあるシートとは別のシートを新規作成する
  2. 1のシートにフォーカスする
  3. セルA1=COUNTA(Names)を入力する
  4. セルC1の結果が4と表示される

 シート名は不要である。同一ドキュメント内であればセル範囲名を指定すれば。

  • 必須条件:セル範囲名を定義したとき範囲ドキュメント(グローバル)になっていること

6-4. 別ファイルのセル範囲

  1. セル範囲名を定義したファイルパスを/tmp/names.odsとする
  2. 新しいodsファイルを作成する
  3. 2のファイルにある任意シートへフォーカスする
  4. セルA1=COUNTA('file:///tmp/names.ods'#Names)を入力する
  5. セルC1の結果が4と表示される

 なお、ローカルファイルでなくWeb上にあるならfile:///の代わりにhttp://...などのURLを入力すること。

参考

所感

 他にも以下のような参照方法がある。だが今回の方法こそが最も利用するはずなので省略する。

対象環境

$ uname -a
Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux