SUMIF関数で4万件以上だと計算結果が誤る問題
- Excel2007、2010でのSUMIF関数で、データが4万件以上あると、3万件前後から以降の結果が誤ってしまいます。最初の方(1~3万件くらいまで)は正しく表示されております。
- ExcelのシートでSUMIF関数を使用している際に、データが一定数以上ある場合に誤った結果が表示される問題が発生しています。具体的には、4万件以上のデータがあると、3万件前後から以降の計算結果が正しくなくなってしまいます。
- 問題の発生原因は、データの元がAccessであるため、商品コードの桁数が15桁以上の場合に発生しているようです。AccessからデータをエクスポートしてExcelにインポートする際、商品コードが文字列として扱われてしまい、SUMIF関数の計算に影響が出てしまっています。表示形式を変更しても問題は解決しません。
- ベストアンサー
SUMIF関数で4万件以上だと計算結果が誤る問題
お世話になっております。 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にインポートしております。 その際、商品コードは「標準」の表示形式にしております。 ここが原因かと思い、「数値」の表示形式に設定してみても解決しませんでした。 原因等お分かりになりましたらご教授ください。 それでは、よろしくお願いいたします。
- yy1192
- お礼率71% (185/258)
- その他MS Office製品
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>数字の商品コードの桁数が15桁以上あるため、 >文字列としてtxt形式でエクスポートした後、Excelにインポートしております。 Excelでは、16桁以上の数値は扱えません。 浮動小数点の数値は有効桁数15桁、というのがExcelの仕様だからです。 試しに、「12345678901234567890」とセルに入力して、書式設定を「数値」にしてみてください。 おそらく、「12345678901234500000」になってしまうと思います。 そして、これもExcelの仕様なんですが、最初に文字列と指定して読み込んでいても、数字文字のみだと数値と解釈してしまうので、有効桁が落ちます。 そのため、正しい商品コードを集計できず、結果が食い違う物と思われます。(総行数の方はおそらく関係ありません。) 商品コードの頭でもお尻でも、「X12345678901234567890」などのように数値以外の文字を付加し、文字列として扱えば、正確に集計できるようになると思います。
その他の回答 (1)
- chonami
- ベストアンサー率43% (448/1036)
あまり関係ないかも知れませんが、 >=sumif((2)シートのA:D,(1)シートのA,(2)シートのD列) の最初の引数を、(2)シートのA:A としてみてください。(商品コード別の集計ですよね?) B~D列の中に商品コードと重複するデータがあってそこも集計に入っているのかも知れません。
お礼
ご回答ありがとうございました。でも、アドバイスの方法でも解決しませんでした、、、
関連するQ&A
- ExcelのSUMIF関数についてです。
ExcelのSUMIF関数についてです。 下記のような表を使用して、 商品コードが一致する商品数の合計をD2セルに入力したい。 (※A2,A3,A4...とA列の中でコードが一致したら、その数量の合計を出す) A B C D 1 商品コード 商品名 数量 計 2 PD0001 AAA 50 3 PD0019 BBB 20 4 PD0009 CCC 150 5 PD0001 AAA 1 6 PD1004 DDD 15 7 PD1027 EEE 50 8 PD0009 CCC 40 9 PD0019 BBB 30 : : : : : : : : sumif関数を使用して、 D2に =SUMIF(A:A,A2,C:C) を入力コピーすると D 計 2 35 3 1 4 50 5 45 6 0 7 0 8 0 9 0 : : : : となってしまいます。 D 計 2 51 3 50 4 190 5 51 6 15 7 50 8 190 9 50 : : : : という出力にするにはどうしたらいいでしょうか? ちなみに、コードではなく商品名で D2に =SUMIF(B:B,B2,C:C) を入力コピーするとうまくいきます。 初歩的なことなのかもしれませんが、 商品コード数も数量もかなり膨大なものを計算するので困っています。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- SUMIF関数で分からないところがあります。
エクセルのSUMIF関数の例題で分からないところがあります。 =SUMIF(A:A,"<=&D2,B:B) A列に日付(2017/12/05,,2017/11/30など) B列に金額(500,100,300など) D列に末日(2017/11/30,2017/12/31など) が入力されています。 A列に入力された日数からD列の末尾までの合計を求めるプログラムだとお思うのですが、 なぜ、Dの前に&が付くのでしょうか? 教えてくださいよろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- SUMIFの計算結果が0
ブック内に商品別のシートが数枚あり、 それを月別集計する別シートを作っています ■商品シート A B C D E 月日 商品 仕入 出荷 在庫 ↓出荷状況によって入力が増減します ■月別集計シート A1=TODAY() B1=型式 C=在庫 ↓商品別に一覧で在庫表示させる A1には、今日の日時を表示(仕様) C=在庫セルにSUMIFで在庫数計算させているのですが、、、 計算結果が0になってしまいます =SUMIF('型式シート'!$A$1:$A$500,">=MONTH($A$1)",'型式シート'!$C$1:$C$500) -SUMIF('型式シート'!$A$1:$A$500,">=MONTH($A$1)",'型式シート'!$D$1:$D$500) その月の全仕入から全出荷を引いて在庫計算させているのですが、 SUMIFの計算結果が0になってしまいます。 記述もしくは検索条件のやり方が違うのでしょうか? お手上げ状態です、、TT
- ベストアンサー
- オフィス系ソフト
- EXCEL SUMIF 関数の計算結果が倍数になってしまう
EXCEL SUMIF 関数の計算結果が倍数になってしまう EXCELのC列に下記数式を入れているのですが、計算結果がなぜか2倍された値が入ってしまいます。 色々と検索してみたのですが、よく分からず、皆様のお力をお貸し頂きたく。 =IF(A2=A3,"",SUMIF(A:A,A2,B:B))
- ベストアンサー
- オフィス系ソフト
- SUMIF関数の質問
宜しくお願いします ExcelのSUMIF関数について教えてください。 質問:入力日付を基に区間検索、複数項目で合計を求める。 =SUMIF(UFJ!B4:B604,">="&売上入金!C13,UFJ!M4:M604)-SUMIF(UFJ!$B$4:$B$604,">"&売上入金!$D$13,UFJ!M4:M604) 上記の数式の説明: UFJシート:B列 日付データ、F列 仕入項目、M列 金額 売上入金シート:A列A18仕入項目(追加したい部分)、 C列C13検索開始D列D13 検索終了、 現在の数式では区間内の金額は抽出できていますが、この条件内で F列仕入を指定して金額を求めたいです。 まだまだ未熟な為に、VBAは分りませんので関数で数式をご指導ください。 PC内容 OS WinXP Office 2003 です 宜しくお願いします
- 締切済み
- その他([技術者向] コンピューター)
- SUMIFがいきなり計算されなくなる
売上台帳から日付ごとに売上額の集計をしているのですが、12/26以降の売上が集計表に"0"で表示されてしまいます。 原因がさっぱりわかりません。 考えられることは何かありますか? 関数の式は =SUMIF(新宿12!$B$6:$L$804,$A31,新宿12!$R$6:$R$804) 読み込むシートのタイトルは新宿12で、 B列には日付 R列には売上金額 が記載されています。 12/25までは問題なく表示されていて、26日以降の関数式を新たに入力しなおしても値が"0"になってしまいます。 OSはWINDOWS7 EXCELは2010 よろしくお願いします。
- ベストアンサー
- Windows 7
- EXCEL SUMIF関数について
EXCELのSUMIF関数ですが、マニュアル通り使用すると 思ったとおりの計算ができません。 A B C 1 1 10 100 2 2 20 200 3 3 30 300 4 4 40 400 5 5 50 500 の様な5行×3列の表で A列が>3のもののB列C列の合計を求めたい場合 =sumif(A1:A5,">3",B1:C5) とすれば990という合計が欲しいのですが、やってみると 90にしかなりません。(B列しか合計されていない) どうなっているのでしょうか。
- ベストアンサー
- オフィス系ソフト
- SUMIF関数
1月1日 100 日付をA列1-10行 数をB列1-10行 1月2日 200 (略) 1月10日 1000 これで 1月4日~1月7日までの 合計SUMIFで求めるとき、 =SUMIF(A1:A10,">=1/4",B1:B10)-SUMIF(A1:A10,">=1/7",B1:B10) と 数式立てました。が答えは 2月8日 と返ってきました。 そこで 質問ですが SUMIF関数は 複数の数式には対応しないのでしょうか?(1月4日以降の合計から 1月7日以降の合計を引いて 1月4日~1月7日 を求める方法) 教えて 下さい。お願い いたします。 エクセルは2002です。 なお、自分 先日COUNTIF で質問して、そのとき 教えてもらった 数式が そのまま流用できそうな 感じがして SUMIF関数に 置き換えて みたら数値が欲しいのに、日付が 返ってきた しだいです。 http://www.okweb.ne.jp/kotaeru.php3?q=339430 お願いいたします。 最近、関数が 難しいですが がぜん 面白くなってきて、参考書を読んで 実践して つまずくと ここに 頼って きてしまいます。
- ベストアンサー
- オフィス系ソフト
- SUMIF関数の集計が上手くいきません。
「集計」シートのA列に得意先コード・O列に集計欄 「貼付」シートのE列に得意先コード・J列に集計欄があります。 なお、「貼付」シートのE列は重複する場合もあります。 「集計」シートのA列の値を、「貼付」シートのE列から探して、その行のJ列の数値の合計を 「集計」シートのO列に集計したいと思っています。 「集計」シートのA406が「B」で「貼付」シートのE200とE300が「B」で、「貼付」シートのJ200が「150」 ・J300が「250」であれば「集計」シートのO406に「500」(150+250)を表示させたいと思っています。 なお、「貼付」シートのE列には他に「B」の値がないものとします。 そこで、O列に次の関数を入れました。 「=SUMIF(貼付!E:E,A403,貼付!J:J)」 すると、(O4:O405)の範囲では、きちんと「貼付」シートの、各得意先コード別の合計が表示されるの ですが、O406の値が「0」と表示されます。 数式は合っていると思うのですが、何が誤っているのか、わかるかたはいらっしゃいますか? 406行目がA列に得意先コードが入っている最終行であることも関係ありますか? あるいは、どのように集計したら良いのか、教えていただけると助かります。
- 締切済み
- オフィス系ソフト
- Excel関数のSUMIFについて
はじめまして、ひろです。 Excelのセル関数について、教えていただきたいのですが。 AシートのB1でBシートに見にいく =SUMIF(A1:A5,"=1",B1:B5) を入れた場合、1100がB1に入ります。 =SUMIF(A1:A5,"=1",B1:B5)の"=1"を変わりに AシートのA1に変えたいのですが、エラーが発生します。 どのようにすれば、エラーが出ず、1100が取得できるでしょうか? 知っている方がいましたら、教えてください。 ---------------------------------------------- 見にくくて申し訳ありません。 各シートの左と上はセルNoです。_は区切りです。 Aシート __A_B 1_1_=SUMIF(A1:A5,"=1",B1:B5) Bシート __A_B 1_1_1000 2_1_100 3_2_100
- ベストアンサー
- その他(プログラミング・開発)
お礼
ご回答ありがとうございます。頂いた内容で解決しました。