準・究極の選択

エクセル2002、OS=Win10 です。

いまここに、売り上げを集計した表があります。
A列に売上金額が入っていますが、これが文字列形式であり、文字列の末に”円”が付いています。
また、金額ですので、数値部分は一定せず、0桁から5,6桁まであります。
これらについて、末尾の円を除外し、更にA列の合計値を計算したいです。
そこでB列に以下のような関数を組み込みました。
=IF(A1<>"",LEFTB(A1,LENB(A1)-1),"空白")

一応の解説
A1が空白以外の場合、A1の文字数をlen関数で算出し、それより一文字分少ない文字数(これは末尾の円を切り落とすため)をA1の文字列の左から取り出せ。

これでB列にはA列の売上金額文字列から「円」を除外した数値部分だけを表示できます。
↑これは見た目の上では完成しました。

で、このB列をΣ、あるいはその他の計算巻数で集計したいのですが、
全く計算してくれません。

まあ、おそらくはLEFTB関数で取り出した値を文字列扱いしているために計算対象にしてくれないのだと思いますが、どうしたら計算対象にしてくれるでしょうか?

なお
「そんなのカンタンじゃん、
 A列の円の文字を置換操作で消去してしまえばいいんだよ
 そうすればA列が全部数字列になり、わざわざB列にLEN関数、LEFT関数で「円」の文字を取り除く、なんて操作をしなくてもA列だけで作業が完了するよ」
というお答えもありましょうが、いろいろ事情があって
【A列の内容を直接置換作業などで改変を加えてはいけない】
ものとしてください。

よろしくお願いします。

「エクセル。金額から「円」を除去して、その」の質問画像

A 回答 (6件)

訂正


=IF(A1<>"",(LEFTB(A1,LENB(A1)-1))*1,"空白")
    • good
    • 0
この回答へのお礼

二度目のご回答ありがとうございます。

お礼日時:2024/09/12 13:31

B5セルの式は以下でもできそうです。



 =SUM(INDEX(VALUE("0"&B1:B4),))
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

試行しました。
ちゃんと計算してくれますね。

既回答にあるような *1 を行なって数値データ化したものに対して
貴殿の回答例を試行してみました。
こちらもちゃんと計算してくれました。

お礼日時:2024/09/12 17:26

文字列から抽出した数字は、”文字列の数字”なのです。


そこに*1する事で計算が行われ数値として結果が出てくる、そういう仕様です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
そういう仕様なんですね。

お礼日時:2024/09/12 15:26

こんにちは



「エクセル2002」とのことなので、SUMPRODUCT関数が使えたかどうかわかりませんけれど、もし使えるようなら、

 =SUMPRODUCT(MID("00"&A1:A4,1,LEN(A1)+1)*1)

を入力することで、直接合計値を求めることができると思います。
(B1:B4の変換は不要になります)

※ A1:A4に「数値+円」または「空白セル」 以外の文字が含まれていると計算はできません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました

お礼日時:2024/09/15 17:56

「*1」で良いと思いますが、関数でやりたい場合はVALUE関数が使えます。

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

ご回答ありがとうございます。

試行したところ、出来ました。
なぜ*1をすると数値データであると認識してくれるのでしょうかね?

お礼日時:2024/09/12 13:31

=IF(A1<>"",(LEFTB(A1,LENB(A1)-1)*1),"空白")


ではどうかな
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2024/09/12 13:31

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A