人生のプチ美学を教えてください!!

       系列1   系列2
 項目1  1.23E+03  1.34E+03
 項目2  3.45E+00  3.56E+00
 項目3  5.67E-03  5.78E-03

上のような表を棒グラフにしたいのですが、そのままだと桁が違いすぎて項目1~3すべての棒の長さが識別できるようなグラフにはなりません。
そこで、

     系列1  系列2
 項目1  1.23  1.34
 項目2  3.45  3.56
 項目3  5.67  5.78

のように、指数部分は無視して有効数字部分だけでグラフを作りたいのですが、簡単にできる方法はありませんか?。

「簡単にできる方法」と書きましたが、VBAとか関数を自分で定義するとかは、私にとっては難易度高すぎます。
よろしくお願いします。

A 回答 (4件)

有効数字部分ではありませんが対数表示は可能です。


縦軸の部分を右クリックして「軸の書式設定」「目盛」タブで
「対数目盛を表示する。」にチェックして確認してみてください。

有効数字で行う場合は、別に計算させた表を用意することになると思います。
B2=1.23E+03
=B2/10^INT(LOG(B2))
で1.23を取り出せます。
ただこれって意味がありますかね...

この回答への補足

説明が足りませんでした。

各項目はまったく別の指標ですので、単位も桁数もばらばらですので、項目の間での比較は意図していません。
比較しようとしているのは、同じ項目の中の系列1と2です。
項目の数が数十~百近いため、ひとつのグラフに押し込もうとしています。
要は、仮説1と2(系列1と2)で各指標の値がどれくらい違うかをグラフ(集合縦棒または集合横棒)に一覧化したいというわけです。

また、系列1=9.99E+06、系列=1.00E+07 というように桁が違う場合は、9.99と10.0の比較になります。
それから、負の値もあり得ます。

対数でのグラフも試しましたが、目盛が等間隔でないので見づらいとの不評を買い、却下されました。

よろしくお願いします。

補足日時:2004/06/22 23:50
    • good
    • 0
この回答へのお礼

おかげさまでグラフはできました。
どうもありがとうございました。

お礼日時:2004/06/27 22:51

#1のmshr1962です。


>それから、負の値もあり得ます。
それではLOG(B2)のところでエラーになりますね。
ABS関数で絶対値化してください。
=B2/10^INT(LOG(ABS(B2)))
これで対応できるはずです。
    • good
    • 0

元のデータに対して、例えばデータがA1にあるとして


=LEFT(TEXT(A1,"0.00E+00"),4)
という式をB1に入れてやれば仮数部のみ取り出すことが出来ます。(ただしA1は正数とする)

しかしながら、そんな数値を使ったグラフに意味があるのかという疑問は残ります。
#1の方の言うように対数グラフの方が良いと思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございました

お礼日時:2004/06/27 22:52

>「簡単にできる方法」と書きましたが


簡単に、ツール-オプションのXX項目をオンに設定する
などと言った方法はありません。ありえません。
#1でおっしゃっている、「ただこれって意味がありますかね...」だからです。
エクセルはデータをシートのセルに設定する過程を無くしてグラフはできません。関数式を指定すると、グラフを書いてくれるソフトとは違います。
>有効数字部分だけで
仮数(部)(かすう、mantissa)といいます。
http://pc21.nikkeibp.co.jp/special/gosa/eg4_1.sh …
#1に出ている式ででも求めないと、以外にエクセルの関数では無いようです。
だからその式で仮数を別列に作り、グラフにすることになります。
理系の問題なんでしょうが、有効数字だけでグラフを書いて何が説明できるのでしょうか。
    • good
    • 0
この回答へのお礼

どうもありがとうございます

お礼日時:2004/06/27 22:52

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