並べ替え時に参照先セル番地が変更されない

LibreOffice 7.6.7.2(Windows x86_64)です。
Calcにて、挿入して貼付け時(※1)や参照先の並べ替え時(※2)に、参照先セル番地が変更されないことが時々発生します。
発生は不定期で、どういった条件で発生するのかは不明です。
[ツール(T)] → [オプション(O)] → [LibreOffice Calc] → [全般] → [入力設定]内の、[列・行の挿入後に参照を修正(R)]と[セル範囲の並べ替え時に参照を更新]の両方にチェックが入っています。
バグということなのでしょうか?

※1 挿入して貼付けの例
(1) セル"A1"に"=$B$1"という式を入力する
(2) 行"2"全体を選択 → コピー(Y) → 行"1"全体を選択 → 形式を選択して貼り付け(S) → [セルの移動:]の[下へ(R)]にチェックし、[OK]
(3-1) セル"A2"(旧A1)の内容が"=$B$2"になる(こちらの動作になることが多い)
(3-2) セル"A2"(旧A1)の内容が"=$B$1"のまま(時々こちらの動作になる)

※2 参照先の並べ替えの例
(1) シート"Sheet1"のセル"A1"に、"=Sheet2!$A$5"という式を入力する
(2) シート"Sheet1"のセル"A2"と"A3"に"A1"をコピーする → シート"Sheet1"のセル"A1"からセル"A3"までの3セルに、"=Sheet2!$A$5"という式が入力されている
(3) シート"Sheet2"のセル"A5"の内容が並べ替え([データ(D)] → [並べ替え(S)]から実施)によってセル"A7"に移動した時、
(4-1) シート"Sheet1"のセル"A1"からセル"A3"までの3セルとも、内容が"=Sheet2!$A$7"になる(こちらの動作になることが多い)
(4-2) シート"Sheet1"のセル"A1"とセル"A2"の内容が"=Sheet2!$A$5"のままとなり、セル"A3"の内容が"=Sheet2!$A$7"になる(時々こちらの動作になる)

この環境では、3−2,4−2は再現できませんでした。

Version: 24.2.3.1 (X86_64) / LibreOffice Community
Build ID: fc604d5980a783e74808a001f1918a603d920494
CPU threads: 24; OS: Linux 6.8; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Calc: threaded

私の環境では「※1 挿入して貼付けの例」は再現しませんでしたが「※2 参照先の並べ替えの例」は1回だけ(4-2)が再現しましたが、その後何度やっても再現できていません。

条件がうまく絞り込めていないです。

Version: 24.2.3.2 (X86_64) / LibreOffice Community
Build ID: 433d9c2ded56988e8a90e6b2e771ee4e6a5ab2ba
CPU threads: 4; OS: Linux 5.10; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Calc: threaded

誤解を招く書き方で申し訳ありません。
自分の環境でも、新規作成したばかりの、他に何も手を加えていない真っ新な表計算ドキュメントに※1や※2の操作だけを行った結果、一定の確率で(3-2)や(4-2)の事象が発生するわけではありません。
実際に起こったのは、Ver. 7.6.7.2にした後に新規作成した真っ新な表計算ドキュメントに少しずつ行と列を加えていった、"A"~"AW"列、約2500行の一覧表の内の一部の列(※1)と一部のセル(※2)だけです(なので、この症状の発生に気付くのが遅れた)。

"セル範囲の並べ替え時に参照を更新"というのはMS Excelには無い機能であり、それを利用したいが為に、数々のバグにもめげずにLibreOffice Calcを使用してファイルを作成してきたのですが、このような結果となったことに対しては残念でなりません。

Saigen.ods (34.0 KB)

これは、貼り付け前後で参照先が混在するケースの説明ファイルです。
実際に起きたのは、これではないですか?

【やったこと】
1シート目で5,6行をコピー
その後、1行目で、形式を選択して貼り付け(下にシフト)
です。

クリップボードには、文字列として参照先のアドレスが入っていますが、
貼り付けられたときには、他の行は更新され、
貼り付け行は、古いままになります。

※1 挿入して貼付けの例
の説明と解決方法を動画にしました。
なお、ショートカットについてはaltについてのみ説明していますが、
Ctrl+Altを使うことでコピー元の内容を残したまま内容を挿入できます。

2 Likes

hidemuneさま
自分の現象というのは、このファイルで例えるならば、

・1~2行目ではなく、押し出された結果発生した61~62行目の一部の列のセルの値が"=$B$4"ではなく"=$B$2"のままになる
・3~60行目の各列のセルの値は、ちゃんと"=$B$4"に変わる
・61~62行目の多くの列のセルの値も、ちゃんと"=$B$4"に変わる

というものです(例えであって、このファイルで自分の環境で問題が発生したわけではありません)。

jun_meguroさま
遅くなりました。
今回問題としているのは、貼り付けた後の1~3行目の値ではありません。
Altを押しながらドラッグというのは、(行数や列数が多くなり、)画面外への移動の場合は面倒に思います。
その点、MS Excelの"切り取ったセルの貼り付け"は非常に楽です。

「切り取り」-「形式を選択して貼り付け」の場合にのみ起こるのではないでしょうか?
(A1) A
(A2) B
(A3) C
(A4) D
(A5) E
(C1)=$A$2(Bが表示)
case 1.(A4)を切り取り(A2)で形式を選択して貼り付けをしても起こらない (C1)=$A$3(Bが表示)
作業前に戻って
case 2.(A3)を切り取り(A2)で形式を選択して貼り付けると起こる (C1)=$A$2(Cが表示)
作業前に戻って
case 3.(A4:A5)を切り取り(A2)で形式を選択して貼り付けると起こる(C1)=$A$2(Dが表示)
切り取りを行ったセル番地へ参照されているセルがくるときに起こるよう
(ctrl+z)で動作を見ると
1.切り取り(C1は$A$2)
2.セル挿入(C1は$A$3 or $A$4)
3.貼り付け(A3.A4のやつA2にいったよね–>$A$2)のような動作してます。バグっぽい


私は50列2500行を間違いなく管理できるほどのおつむを持ち合わせていません

1 Like

sabr0さま
小生の※1とはまた違った問題ですが、Ver. 24.2.4.2にアップした小生の環境でもcase 1~3が再現しました。
case 1と2とで何故違う結果になるのか、小生には見当もつきません。
こういった問題があると、貼り付けの際の[セルの移動]→[下へ][右へ]の機能は怖くて使えないと感じます。
Bugzillaを探せば、とっくに報告が上がっているのかもしれませんが。

case 1〜3, Linux(Debian12)でも再現しました。

Version: 24.2.4.2 (X86_64) / LibreOffice Community
Build ID: 51a6219feb6075d9a4c46691dcfe0cd9c4fff3c2
CPU threads: 2; OS: Linux 6.1; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Flatpak
Calc: threaded

ハックフェストのときにSabr0sさんに教えていただきましたが、以下は近そうですね。
(バグレポでは相対参照で報告されていますが)
https://bugs.documentfoundation.org/show_bug.cgi?id=121436