Excelで面積に「ft²」、価格に「$」を付けて見やすくしたいのに、単価($/ft²)を計算すると#VALUE!が出て困っていませんか。原因の多くは、単位付きのセルが文字列になっていることです。数値は数値のまま保持し、表示形式で単位・通貨を付ける手順をまとめます。
よくある症状:見た目は数字なのに計算すると #VALUE! になる
不動産の物件表や、倉庫・工場の面積と価格の一覧などで、次のようなデータを作る場面はよくあります。
- 面積(Size)を「7704 ft²」のように表示したい
- 価格(Price)を「$1,850,000」のように表示したい
- 価格 ÷ 面積で「$/ft²」を出したい(例:$240.00/ft²)
ところが、面積セルに「7704 ft²」そのものを入力してしまうと、見た目は数字でもExcel内部では「文字列」として扱われ、割り算で#VALUE!が発生します。
| 入力(見た目) | Excel内部の扱い | 確認のしかた(例) | 計算への影響 |
|---|---|---|---|
| 7704 ft² | 文字列 | =ISNUMBER(C14) → FALSE | 割り算で #VALUE! になりやすい |
| 7704 | 数値 | =ISNUMBER(C14) → TRUE | 普通に計算できる |
| $1850000 | 状況による(数値のことも文字列のことも) | =ISNUMBER(E14) で判定 | 文字列なら計算でエラーになる |
#VALUE! は「計算に使える数値ではないものが混ざっている」サインです。面積や価格のどちらか、あるいは両方が文字列化しているケースが多いので、まずは“値”と“表示”を分けて考えるのが近道です。
原因の正体:単位や記号をセルに直接打つと「文字列」になりやすい
Excelでは、セルの中身は大きく分けて「数値」「文字列」「日付(内部的には数値)」などで管理されています。割り算などの四則演算は数値が前提です。
面積セルに 7704 ft² と入力した瞬間、Excelは「数字 + 文字」が混ざっているため、それを数値ではなく文字列として保存します。結果として、
=ROUNDUP(E14/C14,2)のような式で C14 を数値として扱えず #VALUE!- 合計や平均、ピボットテーブルでも期待通りに集計できない
- 並べ替えが文字列順になり「100」「20」「3」のように崩れる
といった副作用まで起こります。見た目だけ整えるつもりが、データとしての価値を落としてしまうのが、このトラブルの落とし穴です。
まずはセルが「数値」か「文字列」かを見分ける
以下の方法で、対象セルが本当に数値なのかをチェックできます。
- 関数で判定:
=ISNUMBER(C14)/=ISTEXT(C14) - 型を返す:
=TYPE(C14)(数値=1、文字列=2) - 左寄せになっている、左上に緑の三角が出る(ただし確実ではありません)
- 数式バーを見る:先頭にアポストロフィ(’)が付いていないか
とくにWebからコピーした面積データは、スペースが通常の半角スペースではなく、改行やノーブレークスペース(見えない空白)が混ざっていることがあり、さらに文字列化しやすいので注意が必要です。
最もおすすめの解決策:値は数値のまま、単位と通貨は「表示形式」で付ける
結論から言うと、対策はシンプルです。
値(中身)は数値のまま保持し、見た目(単位・通貨記号)はセルの表示形式で付ける
これができると、見た目の読みやすさと、計算・集計の正確さを両立できます。
手順1:面積(Size)のセルから単位を外し、数値だけにする
面積セルに 7704 ft² と入っているなら、まずはセルの中身を 7704 にします。単位は入力しません。
「でも、単位がないと見づらい…」という問題は次の手順で解決します。ここで大事なのは、Excelが数値として扱える状態に戻すことです。
手順2:カスタム書式で「ft²」を表示だけ付ける
面積セルを選択して、表示形式をユーザー定義にします。
- 面積セル(例:C列)を選択
- 右クリック → [セルの書式設定]
- [表示形式] タブ → [ユーザー定義]
- 「種類」に以下を入力してOK
代表的な書式例は次のとおりです。
| 目的 | ユーザー定義の例 | 表示例(値=7704) | ポイント |
|---|---|---|---|
| 整数で表示 | 0" ft²" | 7704 ft² | 単位はダブルクォートで囲む |
| 小数2桁まで | 0.00" ft²" | 7704.00 ft² | 面積に小数がある場合に |
| 桁区切りを付ける | #,##0" ft²" | 7,704 ft² | 一覧が読みやすくなる |
これでセルの中身は数値(7704)のままなのに、表示は「7704 ft²」になります。計算に影響しないのが最大のメリットです。
手順3:価格(Price)は通貨表示にする
価格のセルは、セルの書式設定で通貨(または会計)を選ぶのが基本です。
- 価格セル(例:E列)を選択
- 右クリック → [セルの書式設定]
- [表示形式] → [通貨](または[会計])
- 記号を $ に、必要なら小数点以下の桁数を設定
価格も、セルに $ を直接入力しなくても、表示形式で「$」が付きます。これで中身は数値のまま保持され、集計や計算が安定します。
手順4:平方フィート単価($/ft²)の計算式はそのままでOK
面積と価格がどちらも数値になっていれば、式は質問のとおりで問題ありません。
=ROUNDUP(E14/C14,2)
必要なら結果セルの表示形式を通貨にして、見た目を整えます。
「$/ft²」も見た目を整えたい:計算結果に単位を付ける3つのやり方
単価の列は「240.12」だけだと何の数字か分かりづらいので、$/ft²まで表示したいことが多いはずです。ここでもポイントは同じで、数値として保持したいなら、できるだけ表示形式で付けるのが安全です。
やり方A(推奨):計算結果セルにユーザー定義書式で「$/ft²」を付ける
結果セル(例:F14)の書式をユーザー定義にして、次のように設定します。
$#,##0.00" /ft²"
表示は「$240.12 /ft²」のようになり、中身は数値のままです。後で平均単価を出す、別の通貨に換算する、といった作業もスムーズです。
やり方B:数式で文字列として付ける(見た目優先・計算には不向き)
どうしてもセル自体を「文字」として表示したいなら、次のように結合できます。
=TEXT(ROUNDUP(E14/C14,2),"$#,##0.00")&" /ft²"
ただしこの方法は、結果が文字列になるため、後続の計算・集計でつまずきやすくなります。「見た目を整えるのが最優先で、この列は計算に使わない」と割り切れる場合だけにしましょう。
やり方C:値は計算列、表示は別列に分ける(運用で強い)
実務では「計算に使う列」と「報告用に見せる列」を分けるのも堅い方法です。
- F列:単価(数値)…
=E14/C14 - G列:表示用(文字列)…
=TEXT(F14,"$#,##0.00")&" /ft²"
CSVで外部に渡す、システムに取り込む、ピボットで分析する、という場面では数値列が役に立ち、資料に貼るときは表示列が役に立ちます。
大量の「7704 ft²」がすでに入っている場合の直し方(実務向け)
ここからは「もうデータが何百行もある」「すでに単位付きで入力されてしまった」というケースを想定して、手早く直す手順をまとめます。ポイントは、
- 単位を取り除く
- 文字列を数値に変換する
の2段階です。
方法1:置換で「 ft²」を消してから数値化する
- 対象範囲を選択
- Ctrl + H(検索と置換)
- 検索する文字列:
ft²(先頭に半角スペースを含めるのがコツ) - 置換後の文字列:空欄
- [すべて置換]
これで「7704 ft²」→「7704」になりますが、見た目が数字でもまだ文字列のまま残ることがあります。その場合は次の方法で数値化します。
方法2:「区切り位置」で一括変換(早くて失敗が少ない)
Excelの「区切り位置」は、文字列として保存された数字を数値に戻すときに非常に便利です。
- 対象範囲を選択
- [データ]タブ → [区切り位置]
- 「区切り文字」または「固定長」はどちらでもよいので進める
- 最後に[完了]
区切りを実際に入れなくても、完了するだけで数値化されることが多いのがポイントです。
方法3:掛け算で数値化(1列ならサッとできる)
値が「7704」のような数字の文字列なら、掛け算で数値にできます。
- 空いているセルに
1を入力 - そのセルをコピー
- 対象範囲を選択 → 右クリック → [形式を選択して貼り付け]
- [乗算] を選んでOK
文字列×1 は数値として再解釈されるため、数値化できます。データを壊しにくく、操作も短いので覚えておくと便利です。
方法4:別列で「単位除去→数値化」してから計算する(式で確実)
どうしても元データを触れない場合や、セル内の表記ゆれがある場合は、別列で数値化して計算するのが安全です。
例:C14 が 7704 ft² のとき、数値面積を取り出す
=VALUE(SUBSTITUTE(C14," ft²",""))
Webコピーなどで「見えない空白」が混ざる場合は、次のように空白も掃除します。
=VALUE(SUBSTITUTE(SUBSTITUTE(C14,CHAR(160)," ")," ft²",""))
さらに、桁区切りのカンマが混ざる可能性があるなら、カンマも消します。
=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C14,",",""),CHAR(160)," ")," ft²",""))
この「数値化した面積列」を使えば、単価計算は安定します。
| 状況 | おすすめの直し方 | 理由 |
|---|---|---|
| 単位の表記が完全に統一されている | 置換 → 区切り位置 | 一括で速い。作業が少ない |
| 表記ゆれ(スペース違い、コピー由来の空白)がある | 別列でSUBSTITUTE + VALUE | 式で制御でき、修正を追跡しやすい |
| 今後も同様データが継続的に入ってくる | Power Queryで整形 | 更新で再利用でき、手作業を減らせる |
#VALUE! 以外のエラーも同時に潰す:#DIV/0! と空欄への備え
面積が空欄や0の行が混ざると、今度は #DIV/0!(0で割れない)が出ます。単価列を一覧として見せたい場合は、次のようにガードすると運用が安定します。
空欄なら空欄を返す(読みやすい)
=IF(OR(C14="",E14=""),"",ROUNDUP(E14/C14,2))
エラーをまとめて空欄にする(手早い)
=IFERROR(ROUNDUP(E14/C14,2),"")
ただし、IFERRORは「どんなエラーでも隠す」ので、データ不備に気づきにくくなることがあります。集計やチェックが目的なら、エラーを見えるまま残したほうがよい場面もあります。
「ROUNDUP」は必要?丸めは“計算”と“表示”を分けると精度が上がる
質問の式では ROUNDUP を使っています。単価を「切り上げ」で提示するルール(例:請求単価は常に上方向に丸める)があるなら適切です。
一方、分析用途(平均単価、中央値、物件比較)では、切り上げが積み重なると全体が高めに偏ることがあります。ルールが決まっていない場合は、次の考え方がおすすめです。
- 分析・集計に使う列:丸めずに
=E14/C14のまま - 見せる列(表示用):セルの表示形式で小数点以下を2桁にする
- 契約・請求などルールがある列:
ROUNDUPやROUNDDOWNを明示する
「表示桁数」と「実際の値」を切り分けると、後で“なぜ合計が合わないのか”と悩む回数が減ります。
実務で強い設計:列名・入力ルール・書式をテンプレ化する
単位や通貨をセルに打ち込ませない運用にできると、#VALUE!はほぼ再発しません。おすすめは次の3点セットです。
1)単位はヘッダーに書く(最も壊れにくい)
列見出し(ヘッダー)に「Size (ft²)」「Price ($)」「Unit Price ($/ft²)」と書いてしまう方法です。セル自体には数値だけが入るので、CSV出力や別システム連携でも意味が伝わりやすくなります。
2)入力規則で「数値以外は入れさせない」
[データの入力規則]を使えば、面積列に文字が入った時点で弾けます。
- 面積列を選択
- [データ]→ [データの入力規則]
- 「入力値の種類」を「整数」または「小数点数」にする
- 必要なら最小値・最大値も設定
「単位は自動表示されます。数値のみ入力してください」と入力メッセージを出しておくと、チーム運用でも事故が減ります。
3)Excelのテーブル機能で管理し、数式を列全体に自動適用する
範囲をテーブル(Ctrl + T)にすると、行が増えても書式や数式が自動で伸びます。単価列の式も、構造化参照で読みやすく書けます。
例(列名が Price と Size の場合):=ROUNDUP([@Price]/[@Size],2)
サンプル:物件一覧で「ft²表示」「$表示」「$/ft²計算」を同時に満たす
最後に、実務でよくある形のサンプルを示します。セルの中身はすべて数値で、見た目は書式で整えます。
| 項目 | 列例 | 中身(値) | 表示形式 | 計算式(例) |
|---|---|---|---|---|
| 面積 | C列(Size) | 7704 | #,##0" ft²" | (入力) |
| 価格 | E列(Price) | 1850000 | 通貨($、小数0~2) | (入力) |
| 単価 | F列($/ft²) | 240.12(例) | $#,##0.00" /ft²" | =ROUNDUP(E14/C14,2) |
この形にしておけば、
- 単価の平均・中央値・分布もすぐ出せる
- フィルターやピボットで集計しても壊れない
- 単位や記号の見た目も統一できる
という状態になります。見やすさと計算の正確さは両立できるので、まずは「単位や通貨は入力しない」設計に寄せるのが最短です。
まとめ:#VALUE! は“表示のために文字列化してしまった”サイン
面積にft²、価格に$を付けた状態で平方フィート単価($/ft²)を計算したいなら、セルに単位や記号を打ち込むのではなく、表示形式(ユーザー定義・通貨)で付けるのが正攻法です。
- 面積は数値だけ →
0" ft²"などのカスタム書式で表示 - 価格は通貨書式で $ を表示
- 単価も数値のまま → 必要なら
$#,##0.00" /ft²"で表示 - 大量データは置換・区切り位置・VALUE/SUBSTITUTEで一括修正
このルールをテンプレとして固定すれば、#VALUE! に悩まされる時間が大幅に減り、データが“計算できる資産”になります。

コメント