Ronには、電話番号の列があるワークシートがあります。 123-4567のように、727の市外局番を想定した7桁の番号もあります。

(890)123-4567のように、市外局番が含まれているものもあります。ロンは、すべての電話番号を後者の形式にしたいので、短い電話番号を検出して、不足している(727)をそれらの番号に追加するための最良の方法について考えています。

これを実行する最善の方法は、データの性質によって異なります。ご覧のとおり、データはテキストまたは数値である可能性があります。これが可能なのは、Excelが8015551212のような数値を(801)555-1212として表示できる特別なセル形式を提供しているためです。セルに表示されているものと数式バーに表示されているものを比較することで、データが数値であるかテキストであるかを判断できます。 (図1を参照)

image

図1.電話番号がテキストか数字かを判断する。

データがたまたま数値である場合は、次のような式を使用して適切な市外局番を簡単に追加できます。

=IF(A1<=9999999,7270000000+A1, A1)

結果は適切な市外局番を追加しますが、それでもこの数式を含むセルを特別な電話番号形式でフォーマットする必要があります。

データがテキストの場合は、数式を使用してセルの長さを確認し、必要に応じて市外局番を追加できます。

=IF(LEN(A1) = 8, "(727) " & A1, A1)

したがって、電話番号が555-1212(8文字の長さ)の場合、この式は(727)555-1212を返します。もちろん、電話番号の周りに余分なスペースがある可能性があります。これは、電話番号が別のソースからワークシートに貼り付けられている場合によく発生します。その場合は、数式にTRIM関数を含めるだけです。

=IF(LEN(TRIM(A1)) = 8, "(727) " & TRIM(A1), TRIM(A1))

市外局番を追加するのに非常に役立つと思われる別の数式があり、これまでに見たものよりも短くなっています。

=RIGHT("(727) " & TRIM(A1), 14)

この数式は、すべてのセルに市外局番を追加し、結果の右端の14文字を取得します。

データに数値の電話番号とテキストの電話番号がある場合、状況は少し厄介になります。その場合でも、数式をまとめることはできますが、長くなります:

=IF(LEN(TRIM(A1)) > 9, TRIM(A1), IF(LEN(TRIM(A1)) = 8, "(724) " & TRIM(A1), IF(LEN(TRIM(A1)) = 7, 7240000000+A1, "Undetermined")))

これは単一の式であることを忘れないでください。セルA1にあるものの長さをキーオフします。長さが9文字を超える場合、電話番号は正しいと見なされます。長さが正確に8の場合、式はそれが555-1212などの電話番号の「短いテキスト」バージョンであると想定し、市外局番を先頭に追加します。長さが正確に7の場合、それは「短い数字」の電話番号であると見なされ、適切な番号がそれに追加されます。電話番号がこれらのいずれでもない場合、数式は「未定」というテキストを返します。この数式を使用した後でも、特別な電話番号形式を使用して結果のセルをフォーマットする必要があります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13564)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。