アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル関数でお聞きします。
別表のようにc5に 258と数値があります。
これを 6行目に Left関数、Mid関数、Light関数で それぞれ 2,5,8と分解します。
次にこの 2,5,8を Sum関数で =sum(c6:e6)で計算すると 0と表示されます。
次に =c6+d6+e6 で個々に足し算すると 正解の15が表示されます。
これはなぜでしょうか。
また、今状態で SAM関数で正解を導くことはできますか?

「エクセル関数の不思議?」の質問画像

A 回答 (6件)

LEFT関数などで分けた返り値は文字列データになります。



SUM関数は文字列は無視して足します。(全部文字列なら結果は0)
単純な四則演算は文字列も数値として計算します。
これはエクセルの仕様です。
    • good
    • 0

LEFT等で抽出したものは文字列となるからでしょうね。


SUMに反映させたければ、6行目の式の最後に*1とか+0を追加してみましょう。
    • good
    • 0
この回答へのお礼

助かりました。有難うございました

お礼日時:2017/03/14 16:36

6行目の式とはSUMの式ではなく、LEFT等の式のことです。

    • good
    • 0
この回答へのお礼

有難うございます

お礼日時:2017/03/14 16:35

こんばんは!



LEFT・RIGHT・MID関数で表示されている結果はすべて文字列になります。
SUM関数では文字列は無視されるので結果として「0」が返ります。

例えばLEFT関数の場合は
=LEFT(C5,1)*1
のようにすれば数値として扱われます。

※ MID関数・RIGHT関数も同じやり方です。m(_ _)m
    • good
    • 0
この回答へのお礼

有難うございました。助かりました。

お礼日時:2017/03/14 16:35

数値と数字は違います。



Excel では多くのケースで数字を数値に自動変換してくれるのであまり気にしなくてもいいことが多いのですが、関数の場合、引数の型が厳密に指定されていることがあります。

Sum 関数の引数は数値以外0と解釈される仕様のようです。

一方、Left、Mid、Right 関数の返り値は文字列ですから0と解釈されてしまっているものと思われます。

これを回避するためには、N関数で数字を数値に変換すればいいでしょう。

=N(Left(C5,1)
    • good
    • 0
この回答へのお礼

有難うございます。助かりました。

お礼日時:2017/03/14 16:34

こんばんは。



>これはなぜでしょうか。

このSUM関数が、文字は0と扱うのは、もう伝説になっています。

コンピュータ的には、文字を扱えば、エラーになるはずなのに、ならないように作ったわけです。行の中に、注釈を書き入れるために、文字はゼロになるわけです。
表計算の生みの親、1980年当時、アメリカの大学生、ダン・ブルックリンという人が、授業中に思いついたそうです。

なお、スプレッドシートの上の数値は、仮に、文字・数字ということになっているだけで、可変的な要素が強いのです。

私なら、
C6
=MID($C$5,COLUMN(A1),1) 右にドラッグ・コピー  
E6
=SUMPRODUCT(B6:D6*1)
    • good
    • 0
この回答へのお礼

有難うございました。助かりました

お礼日時:2017/03/14 16:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!