ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.001

7桁で入力されている郵便番号のデータにハイフォンを挿入したい 《REPLACE》

2003/2007/2010/2013/2016/2019

郵便番号や電話番号など、桁を揃えて入力されている数字の特定位置に、ハイフォンを挿入したい、というお問い合わせです。
表示形式でなく関数を利用して求める方法をご案内します。

7桁で入力されている郵便番号を表すデータの5桁目にハイフォン(-)を挿入します。
つまり「0000000」を「000-0000」というパターンに仕上げます。

このように特定位置に文字を挿入する場合、REPLACE 関数(関数の分類: 文字列操作)を使用すると簡単です。
REPLACE 関数は、対象文字列の何文字目から何文字分を指定文字列に置換する関数なのですが、3つ目の引数[文字数]を0で指定すると、対象文字列の何文字目の位置に指定文字列を挿入することができるんです。

では、A列セルA2よりデータが入力されているとします。答えを求めるために新しい列を用意し、関数を挿入していきます。
用意した列のデータ先頭行のセルを選択し、REPLACE 関数を利用した式を次のように設定します。

  =REPLACE(A2,4,0,"-")

セルA2の文字列の4文字目に「-」を挿入する、という意味になります。

REPLACE関数

あとは、数式をA列のデータ分、数式コピーを行います。

そのほかの方法としては、全体の桁数が決まっていますので、文字列を取り出す関数を使用してもできます。
7桁の左から3文字+ハイフォン+7桁の右から4文字をつなげる方法です。その場合は次の式となります。

  =LEFT(A2,3)&"-"&RIGHT(A2,4)

LEFT 関数(関数の分類: 文字列操作)ではセルA2の左3文字、RIGHT 関数(関数の分類: 文字列操作)ではセルA2の右4文字を取り出しています。
2つの関数の結果と、文字列ハイフォン「"-"」を、アンパサンド(&)でつなげています。

ヘルプmemo

<REPLACE 関数>(関数の分類: 文字列操作)
文字列中の指定した位置の文字列を置き換えた結果を返します。

数式:
=REPLACE(文字列, 開始位置, 文字数, 置換文字列)
引数:
・[文字列] ...置き換えたい対象の文字列、またはセル参照で指定
・[開始位置] ...置き換えたい文字列の先頭文字の位置を指定
・[文字数] ...置き換えたい文字列の文字数を指定
・[置換文字列] ...置き換え後の文字列を指定
ヒント:
・引数[文字数]を 0 に設定すると、対象の文字列の指定した位置に、置換文字列挿入することができます。
twitter hatena line pocket

関連ヘルプ

左から(右から・途中から)決まった文字数の文字列を取り出す 《LEFT・RIGHT・MID》
余分なスペースを削除してスペースを全角または半角に揃える 《SUBSTITUTE・TRIM》
全角の英数字を半角にするには、またはその逆 《ASC・JIS》
数字文字列を数値にする(関数編) 《VALUE》
別々のセルに入っているデータを結合して(つなげて)表示する 《アンパサンド・CONCAT (CONCATENATE) 》
2つの日付の期間が何年かを求める 《DATEDIF》
セルに入力されている数値を時刻の表示にする 《TIME》
時刻の「8:30」を「8.5」と数値に変換する
循環参照を解決するために
条件を満たすセルの個数を数える 《COUNTIF》
フィルターで抽出されたデータの件数、合計をセルに表示したい 《SUBTOTAL》
検索条件に一致するデータの合計を求める 《SUMIF》
負の小数値を合計したときに計算結果に誤差が生じる
カウントする関数が何をカウントするか 《COUNT・COUNTA・COUNTBLANK》
=のあとに+が表示された「=+」から始まる数式の意味とは
数式で参照しているセルを変更しても、結果が更新されない
セルに計算結果ではなく数式が表示されている
先頭のシングル クォーテーション、アポストロフィー(')を取るには(関数編) 《SUBSTITUTE》
10進数の数値を2進数と16進数に変換するには 《DEC2BIN・DEC2HEX》
月の日数、月末を求める 《EOMONTH》