Tips

【正規表現】Googleスプレッドシートのround関数を一括削除する(数式を一括置換)

Googleスプレッドシートで数式を多用している表を作ったのですが、四捨五入(round)している箇所を、やっぱりそのままの数値で表示する必要が出て、除去したいという場面がありました。その表はセルごとに参照する範囲が違ったりと複雑だったのでコピペでどうにかすることは出来ませんでした。

具体的には下記のような数式が多数ちらばっている感じでした。

=round( $C$4 * ('シート名'!$M$5 / SUM('シート名'!$J$5:$P$5)) ,2)

befor:こちらの数式から「round(」と「,2)」が消えれば四捨五入が除去できます。

=$C$4 * ('シート名'!$M$5 / SUM('シート名'!$J$5:$P$5))

after:round関数のみが消えた状態の数式

置換設定(正規表現)

検索と置換後の正規表現はこちらです

^(=)(round\()(.*)(,.\))$

検索する文字:

$1$3

置換後の文字:

数式置換の操作手順

スプレッドシート上で「Ctrl + H」またはメニューから「編集」>「検索と置換」を選択します。検索欄にround関数を見つける正規表現を、置換後の文字列の欄にround関数を除去後の正規表現を入力します。必要であればシートの検索範囲を指定して、「正規表現を使用した検索」と「数式内も検索」をチェックします。

正規表現の解説

検索する文字:

^(=)(round\()(.*)(,.\))$

左から細かく解説します。

基本説明
^
:文字列の先頭という意味です。
():カッコで囲んだ部分をひとつのまとまりとして扱うことができます。消したい部分と残したい部分が別のまとまりとなるようにします。
$:末尾という意味です

指定全体の説明
^(=):「先頭にあるイコール」を検索することになります。
(round\():「round(」を消したいのですが、「(」は特別な文字なので「\」でエスケープしています。
(.*):「round(」から「,2)」の間は残したいのでカッコで囲んでいます。「.」ドットは任意の一文字を表し、「*」は繰り返しを意味します。なんかの文字が、何文字か続くよ、という意味になります。
(,.\))$:末尾にある「,」となんかの文字(ここでは何桁目で四捨五入するかの指定の数字がくる)と「)」を検索します。

置換する文字

$1$3

$1:1つ目のカッコ内(ここでは「=」)を残します
$3:3つ目のカッコ内を残します(ここではroundの中身の数式)
その他は削除されます

以上です!

reiko suzuki
OLD SKOOLシステムエンジニア。ねこを撫でながら働いています。