Excelで数式が結果ではなく文字列として表示されるときは、セルが文字列の表示形式になっているか、数式がアポストロフィ('=B2*C2)やスペースで始まっています。アポストロフィやスペースを取り除くか、セルを標準にしてから、セルをクリックしてEnterを押します。シートのすべての数式が文字列として表示されるなら、「数式の表示」がオンなので、Ctrl+`を押してオフにします。数値を編集しても結果が変わらないなら、計算方法が手動です。数式 > 計算方法の設定 > 自動を選びます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | Total |
| 2 | Desk | 240 | 2 | =B2*C2 |
| 3 | Chair | 85 | 4 | =B3*C3 |
| 4 | Lamp | 40 | 3 | 120 |
D2とD3は数式そのものを表示しています。D2はアポストロフィで始まっていて、これはExcelに「これは文字列だ」と伝えるもので、セルの中では見えません(数式バーには表示されます)。D3は=の前にスペースがあります。数式になっているのはD4だけで、120を表示します。D2をクリックしてアポストロフィを削除し、セルを=B2*C2にしてEnterを押すと、480が表示されます。
セルが文字列の表示形式になっている
文字列の表示形式のセルは、数式も含めて入力したものをそのまま保持します。先頭の0を残すために列を文字列にしたときや、取り込みで列の種類が文字列になったときに起こります。
- セルを選択してホーム > 数値の書式 > 標準(「数値」グループのドロップダウン)を選びます。
- 表示形式を変えるだけでは足りません。Excelが数式を読むのは入力されたときだけです。各セルをクリックして(またはF2を押して)Enterを押します。
- 列全体なら、列を選択してデータ > 区切り位置 > 完了を使います。すべてのセルを一度に入力し直します。
同じ手順で、文字列のセルに入力されて合計されない数値も直せます(次の次の節を参照)。
「数式の表示」がオンになっている
シートのすべての数式がその文字列を表示しているなら、「数式の表示」がオンになっています。数式 > 数式の表示、またはCtrl+(Escの下のキー、MacではControl+)です。もう一度押すと元に戻ります。うっかり押しやすいキーです。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | Total |
| 2 | Desk | 240 | 2 | 480 |
| 3 | Chair | 85 | 4 | 340 |
| 4 | Lamp | 40 | 3 | 120 |
| 5 | Total | 940 |
このシートの上のFormulasをクリックしてください。Excelの「数式の表示」と同じように、すべてのセルが数式を表示します。もう一度クリックすると、480、340、120と合計の940が表示されます。このモードはブックではなくシートごとの設定なので、ほかのシートは結果を表示したままのことがあります。
文字列として保存された数値: SUMが0や少なすぎる値を返す
数式は正しいのに、足している数値の一部が文字列です。SUMはエラーなしに文字列を飛ばすので、合計がただ少なくなります。
| A | B | C | |
|---|---|---|---|
| 1 | Month | Sales | Type |
| 2 | Jan | 120 | number |
| 3 | Feb | 80 | text |
| 4 | Mar | 95 | number |
| 5 | Apr | 60 | text |
| 6 | |||
| 7 | Total | 215 |
B7は1月と3月だけの合計、215を表示します。Excelでは文字列の数値はセルの左に寄っていて、緑色の三角形が付いています。選択して警告アイコンをクリックし、数値に変換するを選びます。変えられない元データから更新されるなら、このページの最後の課題のように数式の中で変換します。すべての方法は文字列を数値に変換するのページにあります。
計算方法が手動になっている
手動モードでは、再計算するまで数式は古い結果のままです。シートは問題なさそうに見えますが数値は古く、下にコピーした数式はどの行でも1行目の結果を表示します。
- 元に戻す:数式 > 計算方法の設定 > 自動。
- 切り替えずに一度だけ再計算する:開いているすべてのブックはF9、アクティブなシートはShift+F9、すべての数式を再計算するならCtrl+Alt+F9。MacではCmd+=とShift+Cmd+=です。
- データテーブル以外自動では、データテーブル(What-If分析)も古いままになります。
手動モードはうつります。Excelはセッションで最初に開いたブックから計算方法を受け継ぐので、手動で保存されたファイルを開くと、その後に開くものがすべて切り替わります。とても大きなブックでは、編集のたびに再計算されないよう、わざと手動にしていることがあります。そのときは結果が古いとステータスバーに再計算と表示されます。
計算はされるが、期待どおりではない数式
「数式が動かない」という悩みでも、Excelは書かれたとおりに正確に計算していることがあります。よくあるケースが3つあります:
- 数式をコピーしたときに動いた参照。 1つのセルにある率を
$なしで読むと、数式と一緒に下にずれ、下の行は空のセルを掛けることになります。 - 循環参照。 数式が自分の結果に依存していて、Excelは0を表示し、ステータスバーに警告を出します。循環参照を参照してください。
- 数値の代わりのエラー名。 綴りを間違えた関数の
#NAME?などです。各エラーにはこの章にそれぞれのページがあります。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Item | Price | With tax | Tax rate | ||
| 2 | Desk | 240 | 288 | 20% | ||
| 3 | Chair | 85 | 85 | |||
| 4 | Lamp | 40 | 40 |
D2は正しい(288)のに、D3は85、D4は40を表示します。その数式は空のF3とF4を読んでいるので、税が0になっています。D2をクリックしてF2を$F$2に変えると、列全体がそれに合わせて変わります。理由は絶対参照で説明しています。
文字列として保存された数値を合計する
| A | B | |
|---|---|---|
| 1 | Month | Sales |
| 2 | Jan | 120 |
| 3 | Feb | 80 |
| 4 | Mar | 95 |
| 5 | Apr | 60 |
| 6 | Total |
やってみよう: 2月と4月は文字列として取り込まれたので、=SUM(B2:B5)ではそれが漏れます。B6に、4か月すべてを足す数式を書いてください。
--(マイナス記号2つ)は各値を数値に変えます。数値に見える文字列は変換され、本物の数値はそのままです。=SUMPRODUCT(B2:B5*1)や=SUM(VALUE(B2:B5))も同じように動きます。数式が正しければ、セルのいくつが文字列でも動き続けます。
よくある質問
Excelで結果ではなく数式が表示されるのはなぜですか?
数式を入力する前にセルが文字列の表示形式になっていたか、数式がアポストロフィやスペースで始まっているか、「数式の表示」がオンになっています。表示形式を標準にし(ホーム > 数値の書式 > 標準)、セルをクリックしてEnterを押します。シートのすべての数式が文字列として表示されるならCtrl+`を押します。
Excelの数式が自動で更新されないのはなぜですか?
計算方法が手動になっています。数式 > 計算方法の設定で自動を選びます。それまではF9でブックを、Shift+F9でアクティブなシートを再計算できます。手動で保存されたブックを開くと、その後に開くすべてのブックも手動に切り替わります。
合計から一部の数値が漏れるのはなぜですか?
それらの数値が、取り込みの後などに文字列として保存されていて、SUMはエラーなしに文字列を飛ばすからです。たいていセルの左に寄っていて、隅に緑色の三角形が付いています。選択して警告アイコンをクリックし、数値に変換するを選ぶか、=SUMPRODUCT(--B2:B5)で合計します。
Excelに強制的に再計算させるには?
F9を押すと開いているすべてのブックを、Shift+F9でアクティブなシートを再計算し、Ctrl+Alt+F9はExcelが何も変わっていないと判断していてもすべての数式を再計算します。MacではCmd+=で再計算し、Shift+Cmd+=でアクティブなシートを再計算します。