エクセルを日々の業務で使っていると、「数値のはずなのに計算できない」「日付が正しく表示されない」「CSVを開いたら文字が文字化けしてしまった」といった経験をしたことはないでしょうか。
これらの問題のほとんどは、データの「形式(型)」が正しく変換されていないことが原因です。
エクセルには、文字列を数値に変換する機能、日付形式を整える機能、CSVを取り込む際の文字コードを変換する機能など、さまざまな変換機能が備わっています。
これらの機能を正しく理解して使いこなすことで、データ処理の精度が上がり、無駄な作業を大幅に削減できるでしょう。
本記事では、エクセルの変換機能を「文字列から数値への変換」「日付形式の変換」「CSV取り込み時の文字コード変換」の3つのテーマに分けて、わかりやすく解説していきます。
初心者の方から中級者の方まで役立つ内容を網羅していますので、ぜひ最後までお読みください。
エクセルの変換機能を使いこなすカギは「データ型の正しい理解」にある
それではまず、エクセルの変換機能を使いこなすための根本的な考え方について解説していきます。
エクセルで変換に関するトラブルが起きるとき、その多くは「データの型(種類)」に関する誤解から生じています。
エクセルは、セルに入力されたデータを「数値」「文字列」「日付」「論理値」「エラー値」などの型に分類して管理しています。
たとえば、見た目は「123」という数字でも、文字列として入力されている場合はSUM関数で合計できません。
日付も同様で、「2024/01/15」と入力されていても、文字列として認識されていれば日付計算ができないのです。
エクセルで変換が必要になる代表的な3つのケース
1. 文字列として入力・取り込まれた数値を、計算可能な数値型に変換する
2. バラバラな形式で入力された日付を、統一された日付型に変換する
3. CSVファイルを取り込む際に、文字コードの違いによる文字化けを防ぐ変換を行う
数値と文字列の違いを見分ける方法
エクセルでは、数値と文字列は見た目が似ていても動作が大きく異なります。
数値として認識されているセルは、デフォルトで右揃えになります。
一方、文字列として認識されているセルは左揃えになるのが特徴です。
また、文字列として入力された数値のセルには、左上に小さな緑色の三角マーク(エラーインジケーター)が表示されることがあります。
この緑の三角マークは「数値が文字列として保存されています」というエクセルからの警告サインです。
セルを選択して表示される黄色の「!」マークをクリックすると「数値に変換する」というオプションが表示されるため、そこから簡単に変換できるでしょう。
データ型が変換トラブルを引き起こす仕組み
外部システムからエクスポートしたデータや、他の人が作成したExcelファイルを受け取ったとき、データ型のミスマッチが起きやすくなります。
たとえば、会計システムからエクスポートした売上データが、すべて文字列として取り込まれてしまうケースは非常によく見られます。
この状態ではSUM関数やAVERAGE関数が正しく機能せず、集計作業が進まなくなってしまうでしょう。
同様に、日付データが「20240115」という8桁の数値や「2024年1月15日」という文字列で入力されている場合、そのままでは日付関数(DATEDIF、EDATE、WEEKDAYなど)が使えません。
こうした問題を解決するために、エクセルの変換機能を正しく活用することが重要になってくるわけです。
変換前に必ずバックアップを取る習慣をつける
変換作業を始める前に、元のデータをバックアップしておくことを強くおすすめします。
変換操作によってデータが意図しない形式に変わってしまった場合、元に戻すのが難しいケースもあるからです。
具体的には、作業前にシートをコピーして「元データ」として保存しておく方法が手軽で確実です。
シートタブを右クリックして「シートの移動またはコピー」を選択し、「コピーを作成する」にチェックを入れるだけで、元データのバックアップが取れます。
この一手間が、変換作業後のトラブルを防ぐ大きな安全策になるでしょう。
文字列として入力された数値を正しく数値に変換する方法
続いては、エクセルで最もよく起きるトラブルのひとつ、「文字列として保存されている数値を数値型に変換する方法」を確認していきます。
この問題は、外部システムからのデータ取り込みや、他のアプリケーションからコピーした数値データでよく発生します。
VALUE関数を使った文字列から数値への変換
エクセルで文字列を数値に変換する最もシンプルな方法が、VALUE関数を使う方法です。
VALUE関数は、数値を表す文字列を数値型のデータに変換してくれる関数です。
VALUE関数の使い方
書式:=VALUE(文字列)
例:A1セルに文字列「1234」が入っている場合
=VALUE(A1) → 数値の1234に変換される
例:カンマ区切りの文字列「1,234」の場合
=VALUE(“1,234”) → 数値の1234に変換される
VALUE関数は、数値に変換できない文字列が渡されるとVALUEエラーを返します。
そのため、変換対象のデータに数値以外の文字列が混在していないか、事前に確認しておくとよいでしょう。
「数値に変換する」オプションと貼り付けを使った一括変換
セル範囲にある文字列数値をまとめて変換したい場合、「1を掛ける」貼り付け方法が便利です。
手順としては、まず空のセルに「1」と入力してコピーします。
次に、変換したいセル範囲を選択して右クリック、「形式を選択して貼り付け」を選びます。
表示されたダイアログで「乗算」を選択してOKをクリックすると、選択した範囲の文字列数値が一括で数値型に変換されます。
この方法は関数を使わずに変換できるため、変換後のデータを直接そのセルに上書きしたい場合に非常に有効です。
TEXT関数とVALUE関数を組み合わせた高度な変換
数値が「¥1,234」や「1,234円」のように通貨記号や単位を含む文字列になっている場合は、少し工夫が必要です。
SUBSTITUTE関数を使って不要な文字を取り除いてから、VALUE関数で数値化するのが効果的な方法です。
通貨記号や単位を含む文字列から数値を取り出す方法
A1セルに「¥1,234」が入力されている場合
=VALUE(SUBSTITUTE(SUBSTITUTE(A1,”¥”,””),”,”,””))
→ まず「¥」を削除し、次に「,」を削除してから数値に変換する
A1セルに「1,234円」が入力されている場合
=VALUE(SUBSTITUTE(SUBSTITUTE(A1,”円”,””),”,”,””))
このように複数のSUBSTITUTE関数を入れ子にすることで、複数の不要文字を一度に取り除いてから数値変換できます。
処理するデータの形式に合わせて、置換する文字を柔軟に変えていきましょう。
日付形式の変換方法と表示形式の整え方
続いては、エクセルにおける日付データの変換方法と、表示形式の整え方について確認していきます。
日付はエクセルで扱う中でも特にトラブルが起きやすいデータ型のひとつです。
8桁数値や文字列を日付型に変換するDATEVALUE関数
「20240115」のような8桁の数値や、「2024年1月15日」という文字列を日付型に変換する場合は、DATEVALUE関数やDATE関数を活用します。
日付変換の代表的な数式例
A1セルに「20240115」という数値が入っている場合(TEXT関数で文字列化してからDATEVALUEを使用)
=DATEVALUE(TEXT(A1,”0000!/00!/00″))
A1セルに「2024/01/15」という文字列が入っている場合
=DATEVALUE(A1)
年・月・日がそれぞれA1・B1・C1に分かれている場合
=DATE(A1,B1,C1)
DATEVALUE関数の結果は「シリアル値」という数値で返されます。
シリアル値とは、エクセルが日付を管理するために使っている内部的な連番数値のことです。
変換後のセルに「日付」の表示形式を適用することで、人が読みやすい日付表示になるでしょう。
日付の表示形式をセルの書式設定で変更する方法
エクセルでは、同じ日付データでもセルの書式設定を変えることでさまざまな形式で表示できます。
セルを右クリック→「セルの書式設定」→「表示形式」タブから、日付のカスタム書式を設定できます。
| 書式コード | 表示例(2024年1月15日の場合) |
|---|---|
| yyyy/mm/dd | 2024/01/15 |
| yyyy年m月d日 | 2024年1月15日 |
| yy/m/d | 24/1/15 |
| m月d日(aaa) | 1月15日(月) |
| ggge年m月d日 | 令和6年1月15日 |
「ggge」は和暦表示のコードで、元号と年を表示する際に使います。
官公庁への提出書類など和暦が必要な場面で活躍するでしょう。
TEXT関数で日付を任意の文字列形式に変換する
日付を数値としてではなく、文字列として特定の形式で出力したい場合はTEXT関数が役立ちます。
TEXT関数を使えば、日付データを「2024年01月15日」や「20240115」といった任意の文字列形式に変換できます。
TEXT関数で日付を文字列変換する例
A1セルに日付「2024/1/15」が入力されている場合
=TEXT(A1,”yyyy年mm月dd日”) → 「2024年01月15日」
=TEXT(A1,”yyyymmdd”) → 「20240115」
=TEXT(A1,”m/d(aaa)”) → 「1/15(月)」
TEXT関数で変換した結果は文字列型になるため、日付計算には使えない点に注意が必要です。
あくまで「表示や出力用の文字列」として使うものと理解しておきましょう。
CSV取り込み時の文字コード変換と文字化け対策
続いては、エクセルでCSVファイルを取り込む際に発生しやすい文字化けの原因と、文字コード変換による対処法を確認していきます。
CSVファイルの文字化けは、多くのエクセルユーザーが一度は経験するトラブルです。
文字コードとは何か、なぜ文字化けが起きるのか
文字化けが起きる最大の原因は、ファイルの文字コードとエクセルが期待する文字コードのミスマッチです。
文字コードとは、コンピューターが文字をデータとして扱うための「文字と数値の対応表」のことです。
代表的な文字コードには以下のものがあります。
| 文字コード | 特徴 | 主な用途 |
|---|---|---|
| Shift-JIS(SJIS) | 日本語Windowsの標準文字コード | 国内システム・旧来のCSV |
| UTF-8 | 世界標準。BOM付きとBOMなしがある | Webシステム・モダンなCSV |
| UTF-8 BOM付き | UTF-8にBOM(バイトオーダーマーク)を付加 | Excelで直接開ける形式 |
| EUC-JP | UNIXシステムで使われていた日本語文字コード | 旧来のLinuxシステム |
WindowsのエクセルはデフォルトでShift-JISを期待するため、UTF-8(BOMなし)のCSVをそのまま開くと日本語部分が文字化けしてしまいます。
この問題を解決するには、文字コードを指定してCSVを取り込む方法を使う必要があります。
テキストファイルウィザードを使ったCSV取り込みと文字コード指定
エクセルでCSVを開く際に文字コードを指定するには、テキストファイルウィザードを使う方法が確実です。
Excel 2016以前のバージョンでは、ファイルタブ→「開く」から「テキストファイル」として開くことでウィザードが起動します。
Excel 2019以降では、「データ」タブ→「テキストまたはCSVから」を選ぶことで同様の設定が可能です。
ウィザードの中で「元のファイルの文字コード」を選択できるため、UTF-8やShift-JISなど適切な文字コードを指定してインポートしましょう。
Power QueryでCSVの文字コードを変換して取り込む方法
Excel 2016以降で利用できるPower Query(パワークエリ)を使えば、さらに柔軟にCSVの文字コード変換が可能です。
「データ」タブ→「データの取得」→「テキスト/CSV」からファイルを選択すると、プレビュー画面で文字コードを「65001:Unicode(UTF-8)」などに変更できます。
Power Queryは一度設定したインポート手順を「クエリ」として保存できるため、同じ形式のCSVを定期的に取り込む場合は特に便利でしょう。
また、Power QueryはCSVの取り込みだけでなく、データの整形・変換・結合なども一括で行える強力なツールです。
文字コード変換と同時に不要な列の削除や型変換も行えるため、データ前処理の効率が大幅に向上するでしょう。
CSVの文字化けを防ぐための基本チェックリスト
・CSVファイルの文字コードを事前にメモ帳やテキストエディタで確認する
・エクセルでCSVをダブルクリックで開かず、必ずインポート機能を使う
・UTF-8のCSVはBOM付きに変換してから開くと文字化けしにくい
・Power Queryを使えば文字コードを指定した取り込みが安定して行える
まとめ
本記事では、エクセルの変換機能を使いこなす方法として、文字列から数値への変換、日付形式の変換、CSV取り込み時の文字コード変換という3つのテーマを中心に解説してきました。
エクセルのデータ型を正しく理解することが、変換トラブルを防ぐための第一歩です。
VALUE関数やDATEVALUE関数、TEXT関数といった変換関数をうまく組み合わせることで、さまざまな形式のデータを正しく処理できるようになるでしょう。
CSVの文字化け問題は、テキストファイルウィザードやPower Queryを活用することで、確実に防ぐことができます。
今回紹介した変換機能を日々の業務に取り入れることで、データ処理の精度とスピードが格段に向上するでしょう。
まずは自分の業務でよく扱うデータ形式に合わせた変換方法をひとつずつ試してみることをおすすめします。
エクセルの変換機能を味方につけて、より快適な業務環境を作り上げていきましょう。