- ベストアンサー
数値でも文字列でもない? 【Excel】
シート内の値はCSV形式のものをコピーしたもので、文字列の表示(左詰め)になっています。 因みにセル間の足し算や引き算はできます。 しかし 数値の最大値を計算しようと思い MAX関数にて計算しても”0”の表示 文字列なのかと思い MAXA関数にて計算しても”0”の表示 関数(その他SUMやCOUNTA)での計算ができません。 そこで質問ですが、 この場合のセルの表示形式はどうなっているのでしょうか? また計算する方法を教えて下さい。 お願いします。<(_ _)>
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
「表示形式」というのは、そもそも「数値」を任意の方法で、表示するための機能で、「数値」と「文字列」のデータ種を変更するものではない、とお考えください。表示形式の中にある「文字列」というのは、特殊なもので、機能も不十分です。 たとえば表示形式を「文字列」にして、数値を入力すると、それは「文字列」として解釈されます。このあと、表示形式を「数値」などにしても、数値データに変わるわけではありません。文字列→数値データへの変換作業が必要になります。 で、Excel2002を使用されているのでしたら、文字列として認識されている数字セルの左上に、緑色の三角印が表示されていませんか? それらの範囲を選択すると、選択範囲の右上にスマートタグが表示されるはずです。そのボタンをクリックすると、対処法が選べ、「数値に変換する」を選べば、数値に変換できます。 変換したいセル範囲が1列だけならば、[データ]-[区切り位置]コマンドを実行すると簡単です。同コマンドを実行すると、ダイアログが表示されますが、そのまま[OK]ボタンをクリックすれば、数値に変換されます。表示形式が「標準」等になっている必要がありますが、これは大丈夫ですよね。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
この現象は再現できます。 A1セルに'1 A1セルに'2 A1セルに'3 と入れます。 ’は見えなくなりますが、左詰めです。 書式-セル-配置を右詰にします。見た目は 数字の1,2,3を入れたように見えます。 =A1+A2は2になります。 =MAX(A1:A3)は0です。 =MAXA(A1:A3)も同じです。 =MAXA("1","2","3")とした時だけ3になります。 セルの書式を文字列にしても=MAX(A1:A3)は0です。 エクセルは演算の時だけ文字数字は数値に直して計算します。 文字列数字と数字の最大の違いは、書式設定の中の3桁ごとのカンマや¥マーク付けなど数字用の書式が効かないことのようです。%も効かない。 CSVファイルを読み込ませる時に注意が必要です。
お礼
アドバイスありがとうございます。 >=MAXA("1","2","3")とした時だけ3になります。 これが一番納得できませんね。う~ん。。 『="1"』ダブルコーテーションを使った際にも違いがありそうですね。CSV形式の読み込みには注意します。
- kinokoyasan2004
- ベストアンサー率59% (16/27)
はじめまして。 表示形式については、特に変更していない場合は「標準」になっていると思います。 #2であるように、セルの書式設定で確認できると思います。 計算方法も、他の方と同じですが、Excel2002を使用でしたら、ファイル->開くで、CSV形式を指定して開くと、ウィザードが起動して、区切り文字や表示形式の指定をして開く事ができます。
お礼
アドバイスありがとうございます。 実は『Excel2000』を使用していまして...。 2002にVersion upすることを検討します...。
補足
皆様回答ありがとうございます。 ここで少し補足させて下さい。 MAXA関数でも計算されないのは「文字列」として認識されているということは分かりました。 セルの表示形式は現在「標準」になっています。 質問としては表示形式と内部の認識の違いについてなのですが。 表示形式を「数値」に変えたとしても「文字列」として認識されているというのは分かりますが、数値として表示されるのに計算されないというのが不明な点です。 それと計算方法については皆さんの方法で実施可能ですが、シート数が膨大なのでもう少し簡単に変更できるやり方があれば教えて頂ければ幸いです。
- mshr1962
- ベストアンサー率39% (7417/18945)
MAXAの場合、論理値(TRUE=1,FALSE=0)、文字列=0として 計算だと思いました。 数字が文字列になっているなら数字化の必要があります。 空いている列に1を入力、コピーして 「編集」「形式を選択して貼り付け」「乗算」「OK」で 貼り付けたセルの値に1を掛けた結果を返します。 数字の文字列は数字になるのでMAXで計算できるはずです。
お礼
アドバイスありがとうございます。 >MAXAの場合、論理値(TRUE=1,FALSE=0)、文字列=0として 計算だと思いました。 単純に文字列の値も計算されるのだと思っていました。 勘違いしてました。 >数字化の必要 方法として面白いと思いました。 マクロでコピーしているので先に『1』を入れてから値を乗算にて代入すればその時点で数値になりそうですね。 ありがとうございました。
- edomin
- ベストアンサー率32% (327/1003)
表示形式は「セルの書式設定」で確認できませんか? 強制的に数値に変更するなら(A1)に値が入っているとして(B1)に =A1*1 とすると、数値に変更されると思います。
お礼
アドバイスありがとうございます。 文字列を数値として計算する方法として覚えておきます。
- yasuhiro99
- ベストアンサー率49% (62/126)
どういう形式になっているかは、 そのファイルを見ないとなんともいえないのですが、 なにも考えずにただ計算したい結果だけ求めるなら 仮にC列にその計算したい数値があるとします。 その場合、D列を追加し、数値にして、 「=C1*1」にすれば、数値になります。 (D列を採用する場合は、計算式なので、コピーして ”値だけ貼り付け”をお忘れなく)
お礼
アドバイスありがとうございました。 方法として参考にさせて頂きます。
お礼
アドバイスありがとうございます。 補足に対する回答をいただけなんとなく分かりました。 あくまでもなんとなくでして、『Excel2000』に対して不満は残りますけど。。 処置方法もとても参考になりました。 これなら列を増やすことをせずに済みそうですね。