はじめに
CSVやシステム出力データをExcelで開いたとき、
「数字なのに文字として扱われる」「日付の計算ができない」
といったトラブルに遭遇したことはありませんか?
見た目は同じでも、Excelは「文字列」と「数値/日付」を別物として認識します。
そのため、足し算・平均・並べ替え・条件付き書式などが正しく動かなくなることがあります。
この記事では、そんなときに役立つ
VALUE関数・DATEVALUE関数・TEXT関数 の基本と実務での使い分けをわかりやすく解説します。
VALUE関数(文字列 → 数値に変換)
書式
=VALUE(文字列)
例
| A列(元データ) | 式 | 結果 |
|---|---|---|
| “123” | =VALUE(A1) | 123 |
| “45.6” | =VALUE(A2) | 45.6 |
ポイント
- 数字を表す文字列を「数値」に変換
- 計算・グラフ・関数の引数などで正しく使えるようになる
応用例:文字扱いの金額を数値化
| A列 | 式 | 結果 |
|---|---|---|
"10,000" | =VALUE(SUBSTITUTE(A1,",","")) | 10000 |
カンマ入りの金額を計算可能な数値に変換。SUBSTITUTEで「,」を削除してからVALUEで数値化するのがポイントです。
DATEVALUE関数(文字列 → 日付に変換)
書式
=DATEVALUE(文字列)
例
| A列(元データ) | 式 | 結果 |
|---|---|---|
| “2025/10/20” | =DATEVALUE(A1) | 2025/10/20 |
| “10/20/2025” | =DATEVALUE(A2) | 2025/10/20 |
ポイント
- 日付の文字列を「Excelのシリアル値(日付形式)」に変換
TODAY()やDATEDIF()など日付関数との連携が可能
応用例:文字形式の日付を正しく計算
=TODAY() - DATEVALUE(A1)
→ 文字列として入力された日付から経過日数を計算。
TEXT関数(数値/日付 → 文字列に整形)
書式
=TEXT(値, 表示形式)
例
| 式 | 結果 |
|---|---|
=TEXT(1234, "#,##0円") | 1,234円 |
=TEXT(TODAY(), "yyyy年m月d日") | 2025年10月20日 |
ポイント
- VALUE・DATEVALUEとは逆方向の変換
- 印刷・帳票・PDF出力など「見た目重視」の整形に便利
3つの違いまとめ
| 関数名 | 主な用途 | 変換方向 | 代表例 |
|---|---|---|---|
| VALUE | 文字列 → 数値 | 内部計算向け | "123" → 123 |
| DATEVALUE | 文字列 → 日付 | 日付計算向け | "2025/10/20" → 2025/10/20 |
| TEXT | 数値・日付 → 文字列 | 表示整形向け | 2025/10/20 → "2025年10月20日" |
覚え方
- 計算したいときは VALUE / DATEVALUE
- 見せたいときは TEXT
実務での活用シーン
① システム出力データの整形
CSVデータで「10,000」や「2025/10/20」が文字扱いになるケース。
=VALUE(SUBSTITUTE(A1,",",""))
=DATEVALUE(A2)
→ 正しい数値・日付に変換して集計可能に。
② 日付の差・期間計算
=TODAY()-DATEVALUE(A1)
→ 契約開始日からの経過日数を自動算出。
③ 帳票・請求書の表示整形
="発行日:" & TEXT(TODAY(),"yyyy年m月d日")
→ 「発行日:2025年10月20日」ときれいに表示。
注意点
- VALUE/DATEVALUEは文字列しか変換できない
→ すでに数値や日付の場合は変化なし。 - TEXTで整形した値は“文字列扱い”になる
→ 再計算や並べ替え時はVALUEで戻す必要あり。 - ロケール(地域設定)によって日付解釈が変わる
→ 「10/11/2025」は国によって10月11日か11月10日になる可能性あり。
まとめ
- VALUE関数:文字列 → 数値(計算できるように)
- DATEVALUE関数:文字列 → 日付(経過日数などに使う)
- TEXT関数:数値・日付 → 文字列(見た目を整える)
- 3つを使い分けると、文字化け・データ形式エラーを防止できる
データ整形の最終ステップとして、
“文字・数値・日付の相互変換” を自在に扱えるようになれば、
どんなExcelデータもスムーズに処理できるようになります。


コメント