Excelで0を返す合計


12

Excelスプレッドシートで作業していて、セルでSUM数式を使用してから列を選択すると、が返されます0。セル内の二重引用符が原因であると思います。セルをフォーマットしようとしましたが、それでも戻ります0

Microsoft Office 2010を使用しています

結果のスクリーンショット

回答:


5

二重引用符を削除するには、変換するセルを選択し、を使用Find->Replaceして引用符(")をなしに変更します。

セルがテキストのままの場合は、コマンドを使用してテキストを数値に変換する方法を次に示しPaste Specialます。

  1. 空白のセルに値1を入力します
  2. 1を入力したセルが数値としてフォーマットされていることを確認してください
  3. 1でセルを選択し、 Copy
  4. 数値に変換する値を持つセルを選択します
  5. 選ぶ Paste Special
  6. Operation、をクリックしMultiply、次にをクリックしますOK

問題は引用符からではありません。スクリーンショットに表示されている引用符は、値が数字ではなくテキストであり、値に引用符が含まれていないためです。その理由は、フランス語ロケールで,は小数点ではなく、であるから.です。のような値123.45はテキストであり、合計することはできません。これは「数値がテキストとして保存されている」状況ではなく、「テキストがテキストとして保存されている」状況であるため、提案したように1を掛けてもこの場合は機能しません。ドットを昏睡に置き換えると、Excelはテキストを実数に変換します(これはフランス語のロケールにのみ適用されます)。
ピコ

7

追加しようとしている「数字」は、数字ではなくテキストです。

これは、それらを適切にマークするソースからロードされた場合、またはセルの形式が正しく設定されていない場合に発生します。

残念ながら、それを修正する簡単な2クリックの方法はありません。セルのフォーマットを変更しても、それに応じて内容が変更されることはないため、各値を再入力する必要があります。ただし、修正する方法はいくつかあります。

  1. CSVまたはExcel以外のソースからデータをロードした場合、最も簡単なのはそれを繰り返し、列を「テキスト」ではなく「数値」としてマークすることです。これを行うには、空白のExcelシートを開き、[データ] / [テキストから]に移動して、ウィザードに従います。ステップ3/3では、必ず列をクリックして、「テキスト」ではなく「一般」を選択してください。

  2. これがオプションでない場合は、ヘルパー列(値のすぐ隣など)を使用して、=VALUE(E1)F1に入力し、それを下にコピーできます。この列は合計可能になります。次に、列Fの内容と「貼り付け/値のみ」を列Eにコピーし、ヘルパー列を削除することもできます。

  3. 3番目のオプションは、これを配列式に結合することです:代わりに(の代わりに)=SUM(E10:E13)使用=SUM(VALUE(E10:E13))して押します。CTRLSHIFTENTERENTER


私は2と3の解決策を試してみましたが、=SUM(VALUE(E10:E13))エラーを返すため、解決策はありません。しかし、ファイルは正確にcsvにフォーマットされています。それを.xlsxに変換し、列を数値としてマークする方法はありますか。再びThx
Haithem Rihane 2016

@ fixer1234私にはそれが答えで提案されたようです。
techraf 2016

@techraf、ええ。私はOPのコメントに対処しようとしていましたが、私のコメントは混乱を増しました。
fixer1234 2016

@techrafと@Aganju各セルにVALUE関数を適用しましたが、それでもエラーが返されます=SUM(VALUE(E10):VALUE(E13))
Haithem Rihane '30

@HaithemRihane、それは機能しません、それはそのように配列数式ではありません。CTRL + SHIFT + RETの指示に従いましたか?入力したことがないかのように結果が表示さ={SUM(VALUE(E10:E13))}ます{}。1.の詳細な説明も追加しました
。– Aganju

3

私はフランス語ロケールのExcelも使用しており、CSVファイルでこの問題に直面することがよくあります。他の人が説明したように、フランスの数値は小数点を小数点として使用し、同様の数値123.45はExcelでテキストとして解釈されます。

これを回避する最も速い方法は、に置き換える.こと,です。Davidが提案したように、Find / Replaceを使用してすばやく実行できます。

この問題に頻繁に直面する人は、次のコード(この回答を基に作成)を使用して、個人用ワークブックに保存し、リボンのボタンに割り当てることができます。

Sub Comas2Dots()
    Application.ScreenUpdating = False
    If (MsgBox("Do you want to replace comas by dots?", vbOKCancel) = vbOK) Then
        Const sTEMPCOMMA = "|comma|"
        Const sTEMPDOT = "|dot|"
        Const sCOMMA = ","
        Const sDOT = "."

        If TypeName(Selection) = "Range" Then
            With Selection
                .Replace sCOMMA, sTEMPCOMMA, xlPart
                .Replace sDOT, sTEMPDOT, xlPart
                .Replace sTEMPCOMMA, sDOT, xlPart
                .Replace sTEMPDOT, sCOMMA, xlPart
            End With
        End If
    End If
    Application.ScreenUpdating = True
End Sub

この不必要な問題を経験している人々に役立つことを願っています!


追加のドキュメント

  1. リボンにマクロを割り当てる方法
  2. マクロを個人用マクロブックにコピーする

2

追加しようとしているセルは数値として表示されません。これは、完全なストップ "。"があるためです。数値の小数部を表すカンマ「、」ではありません。

これを修正するはるかに速い方法は、検索機能(Ctrl F)を使用して、すべての "。"を検索することです。「、」に置き換えます。


@ fixer1234実際には、Davidの言うとおりです。私も持っているフランス語ロケールでは、カンマが小数点です。数字にはピリオドはまったく使用されません。OPの問題は、数値が実際のテキストであることを簡単にし、それを修正するには、交換する必要がある.,。もちろん、これはフランス語(および同様の)ロケールでのみ適用されます。
ピコ

1
  1. SUMを実行する列を強調表示し、右クリックしてセルをフォーマットします。

  2. [数値]を選択しますが、値に適用されない場合は、小数点以下を0に設定することを忘れないでください。列の形式を変更しましたが、列がすべての値を正式に数値に変換したという意味ではありません。これを解決するには、次のようにします

  3. 列全体を再度強調表示し、[データ]タブをクリックして、[テキストから列へ]をクリックします。

ここに画像の説明を入力してください

  1. [区切り]を選択し、[次へ]をクリックします

  2. タブのチェックを外して次へをクリックします ここに画像の説明を入力してください

  3. 完了をクリックします

合計に数値が反映されます。


-1

新しいExcellシートを開きます。数値としてシートをフォーマットし、必要がない場合は小数を削除します。次に、元のシートをコピーし、数値としてのみフォーマットしたシートに値としてのみ特別に貼り付けます。あなたの問題を解決する必要があります日付を記入するためにいくつかのシートをフォーマットする必要があるかもしれません、そしてあなたがそれらを分離したならばあなたはあなたの箱全体を行う必要がありますが、あなたの数式は愚かなことでうまくいくはずです


-1

非表示になっている行がないことを確認してください。非表示にした2つの行があり、これを認識してそれらの行を削除した後、最終的に計算が機能しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.