LibreOffice Calcの検索と置換の書式について

お世話になります。
Calcの置換の挙動について質問です。

置換の実行手順

  1. 置換したいセルを選択
  2. セルの書式は数に設定
  3. 置換候補で数字の0を入力
  4. 全て置換

この手順て置換されますが、結果は数ではなく文字列で出力されています。
置換後のデータを元のセルの書式を保持したまま行うことは可能なのでしょうか。




sample.ods (19.1 KB)

# コード形式では、0 の値は表示されません。
書式コードを 0 (# ではなく) に変更します。
次に、E4:F10、0Alt+Enter を選択します。


とにかく、ここにはバグがあるようです。

en:
With # code format, 0 values are not shown.
Change format code to 0 (instead of #).
Then select E4:F10, 0, Alt+Enter.
Anyway, there seems to be a bug here.

3 Likes

検索と置換で空白セルを置換するといくつかバグがあるように思います。

  1. 選択範囲外のセルにも適用される。(今回の例だとB2セル)
  2. 置換後は文字列として扱われる。(今回の例)(TDF#104933がそれっぽい)
  3. すべて置換だと「元に戻す」が効かない。(TDF#151213)

セルの書式が変化したわけではなく、「’」がついているため文字列のようになっている。


LeroyGさんの回答のように範囲選択して0を入力しAlt+Enterで確定させるのが良いかと思います。
どうしても検索と置換でやるならば、空白セルを0(もしくは任意の何か文字)にすべて置換したのち、0を検索して0で置換すると目的のものになるんじゃないでしょうか。

3 Likes

整理したいのですが、

・数の書式が#だと、0は表示されません。
・書式が0だと、0は0として表示されます(再入力が必要かも知れません)

という前提があり、以下のBugを、なんとか回避する必要が現時点ではあります。
https://bugs.documentfoundation.org/show_bug.cgi?id=104933

どのような困りごとがメインになるのでしょうか?

元々はオートフィルすると書式が崩れてしまうので、なら値が増加しないフィルに関しては一気に置換してしまいたいということでした。

しかし上記課題も拡張機能で対策できなくはないので一旦は大丈夫なのですが、副産物として検索と置換の挙動に怪しさがあるという部分が気になりました。

仰っていただいている通り、書式が数字で#になっていると0は表示されないようですが、例えば置換を1や2でやっても['1]や['2]になってしまうようです。

そして、範囲指定して置換しているはずなのに見当違いの部分が勝手に置換される挙動も気になります。

これに関しては、表形式になっている空白のセルに適用されるようです。

サンプルファイルを添付します。
これは、B2からE2まで「Column」という名前がついていて、A3からA10まで「Row」という名前がついているだけのファイルです。
書式も何も設定していません。

例えば、B15からB20まで範囲選択をして検索と置換を行います。
検索には何も入力せず、置換に1または2と入れて全て置き換えます。

すると、A2とB3からE10までのセルにアポストロフィー付きの数字が置換されます。
sample2.ods (10.1 KB)

実に不思議な挙動です。

1 Like

最悪だ。取り返しがつかない。

en:
Worst. It can’t be undone. Bug tdf#151213.

バグレポを追加しておきました。

https://bugs.documentfoundation.org/show_bug.cgi?id=164345

3 Likes