いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)ハイフンを消す方法

ハイフンが表示されている原因を区別する

 ハイフンを消すには、そのハイフンが表示されている原因(ハイフンが文字としてセル内に入力されているのか、表示形式の設定により表示されているのか)を確認して適当な方法を選択する必要があります。


 次の画像はB3セルを選択したところですが、数式バー内にハイフンが表示されています。これはハイフンが文字としてセルに入力されていることを意味しますので、「検索と置換」メニューを使ってハイフンを消したり、関数を使ってハイフンを抜いた文字列を取得するのが適当です。

 


 一方で、次の例では数式バー内にハイフンが表示されていません。
 この場合はハイフンが文字としてセルに入力されておらず、見かけ上ハイフンをつけて表示させているに過ぎません。よって表示形式の設定を変更してハイフンを消すのが適当です。


ハイフンを消す方法

「検索と置換」メニューを使って消す方法

 セル内にハイフンが文字として入力されている場合の方法です。
 さっそく注意点ですが、ハイフン以外に半角数字しか入力されていない場合は、まず対象範囲を選択してメニューから「表示形式」→「数字」→「書式なしテキスト」を選択しておくのが適当です(理由は後述)。

 


 ここからが「検索と置換」の実行となります。
 対象範囲(B3:B5)を選択した状態でメニューから「編集」→「検索と置換」と選択します。

 


 ダイアログが出現しますので一番上の「検索」欄にハイフンを入力して、下部にある「すべて置換」ボタンをクリックします。
 ここで「完了」をクリックすると何も起きずに終わるので注意してください。

 


 「すべて置換」ボタンをクリックするとセル内のハイフンが削除され、表示されなくなりました。
 あとは「完了」ボタンをクリックすれば作業終了です。

 


 さて、最初に「表示形式」→「数字」→「書式なしテキスト」を実行していなかった場合、ハイフンが削除されると同時に、残った数字が文字列から数値に変換されてしまいます。それだけなら特に問題なさそうですが、結果的に先頭のゼロが消える(次の画像のB4セル)ので注意が必要です。
 もちろん英字などが一緒に残るのならこのようなことは起こりません。

関数を使ってハイフンを消した文字列を取得する方法

 こちらもセル内にハイフンが文字として入力されている場合の方法です。
 次の画像では、C3セルに数式を入力し、C5セルまでフィルコピーすることでB3~B5セルの文字列からハイフンを除いた文字列を取得しています。

 C3セル(下方にフィルコピー)

=SUBSTITUTE(B3,"-","")

 
 SUBSTITUTE関数を使い、文字列中のハイフンを空文字列(長さ0の文字列)に置き換えています。
 これでハイフンを除いた文字列が取得できます。



 また、次の画像ではREGEXREPLACE関数を使って同じ結果を得ています。

 C3セル(下方にフィルコピー)

=REGEXREPLACE(B3,"-","")

 REGEXREPLACE関数はSUBSTITUTE関数に似た機能を持つ関数です。
 ここではハイフンだけを削除しているので特に違いがわかりませんが、複数種類の文字の一括削除も可能であるなど、とても強力な関数です。

表示形式を変更して消す方法

 実際にはセル内にハイフンが入力されていない場合の方法です。
 まずは対象範囲(B3:B5)を選択して、メニューから「表示形式」→「数字」→「カスタム数値形式」と選択します。

 


 するとダイアログが現れます。
 テキストボックス内に入力されている文字列は「数字のうち3つ目と4つ目の数字の間にハイフンを挿んで表示させる」という意味で、この設定によりハイフンが表示されています。

  


 そこでハイフンだけを削除して「適用」をクリックします。

 


 以上でハイフンが消えました。