dポイントプレゼントキャンペーン実施中!

お世話になっております。

Excel2007、2010でのSUMIF関数で、データが4万件以上あると、
3万件前後から以降の結果が誤ってしまいます。
最初の方(1~3万件くらいまで)は正しく表示されております。

Excelのシートとしては、

(1)シートのA列に商品コードがあり、B列にSUMIF関数を設定。
(2)シートのA列に商品コード、B列に出荷日、C列に注文個数、D列に金額

となっております。

(1)シートB列に設定したSUMIF関数は、=sumif((2)シートのA:D,(1)シートのA,(2)シートのD列)

としております。

実はこのデータの元はAccessのデータで、数字の商品コードの桁数が15桁以上あるため、
文字列としてtxt形式でエクスポートした後、Excelにインポートしております。
その際、商品コードは「標準」の表示形式にしております。
ここが原因かと思い、「数値」の表示形式に設定してみても解決しませんでした。

原因等お分かりになりましたらご教授ください。

それでは、よろしくお願いいたします。

A 回答 (2件)

>数字の商品コードの桁数が15桁以上あるため、


>文字列としてtxt形式でエクスポートした後、Excelにインポートしております。

Excelでは、16桁以上の数値は扱えません。
浮動小数点の数値は有効桁数15桁、というのがExcelの仕様だからです。

試しに、「12345678901234567890」とセルに入力して、書式設定を「数値」にしてみてください。
おそらく、「12345678901234500000」になってしまうと思います。

そして、これもExcelの仕様なんですが、最初に文字列と指定して読み込んでいても、数字文字のみだと数値と解釈してしまうので、有効桁が落ちます。
そのため、正しい商品コードを集計できず、結果が食い違う物と思われます。(総行数の方はおそらく関係ありません。)

商品コードの頭でもお尻でも、「X12345678901234567890」などのように数値以外の文字を付加し、文字列として扱えば、正確に集計できるようになると思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。頂いた内容で解決しました。

お礼日時:2012/05/24 18:35

あまり関係ないかも知れませんが、



>=sumif((2)シートのA:D,(1)シートのA,(2)シートのD列)

の最初の引数を、(2)シートのA:A

としてみてください。(商品コード別の集計ですよね?)

B~D列の中に商品コードと重複するデータがあってそこも集計に入っているのかも知れません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。でも、アドバイスの方法でも解決しませんでした、、、

お礼日時:2012/05/24 14:32

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