• 締切済み

SUMIFに変わる(代用)数式を教えてください

お世話になります。 日々の実績管理表の改良しようと思い苦慮しております。 SUMIFに変わる、負荷の軽い関数を教えて頂けましたら 助かります。 実績シートに毎日、約20000件データをダウンロードし 当日実績 先付実績 未処理 当日の受注 の状況を管理しています。 品番毎シートを作成し、下記の数式を利用しています。 =SUMIF(sap実績!$A$2:$A$50000,"*"&$B7&$A$3&BB$5,sap実績!$F$2:$F$50000)+SUMIF(sap実績!$A$2:$A$50000,"*"&$B7&$B$3&BB$5,sap実績!$F$2:$F$50000)  ⇒登録日&法人コード&品番&該当月 *色が違うと品番が変わるので、+(プラス)でつなげています。  最大で4回つなげています。 SUMIFを利用しているためか、開くにも時間がかかるようになっているため、 来年1月からのフォームについて、改良できればと思います。 品番はどんどん増えているので、大変困っています。 どなたか、ご教示お願いいたします。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

出来るだけSUMIF関数を使うことなく作業列を屈指して結果を出すことでしょう。特にお示しの式ではA2セルからA50000セルにわたってB7&A3&BB5の値が含まれているかどうかを調べ含まれていればF列の数値を足していくという操作を行うことになりますので大変な時間がかかります。 それに対して作業列を使って例えばsap実績シートのH2セルに例えば結果をシート1に表示させるとしてB7、A3,BB5セルの値を含むデータのsap実績シートのF列での合計を求めるとしたら次のような式を入力して下方にドラッグコピーします。 =IF(COUNTIF(A2,Sheet1!B$7&A$3&BB$5),SUM(H$1:H1)+F2,"") 色が変わると品番が違うのでとの意味をよく理解していませんが、それらを考慮して式を入力します。 その上でシート1での条件に合う合計値は単に =MAX(sap実績シート!H:H) 上のようにすることでかなり速度が改善されると思いますね。

shironekochann
質問者

お礼

お世話になります。 ご回答ありがとうございます。 不明点を質問させてください。 今作業列を作成して、データをためている実績シートに =IF(COUNTIF(A2,Sheet1!B$7&A$3&BB$5),SUM(H$1:H1)+F2,"") をいまあるデータを考慮しながら、作業列を追加して式を式を入力して下方にドラッグコピー 今、表を作成しているシート1の該当セルへ =MAX(sap実績シート!H:H) を利用するということで間違いないでしょうか? 試してみたのですが、上手くいかなくて。 お手数をおかけしますが、何卒よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2
shironekochann
質問者

お礼

お忙しいところ、大変、丁寧なご回答(情報)ありがとうございます。 数式が重いので、どんどん計算が遅くなっているとしか 思ってなく、代わりの数式を見つけることができれば 解決できるのでは?としか、思いついていませんでした。 肥大化するには、他にも原因があるんですね。 教えて頂いたURLの中の情報を熟知しまして、スムーズな 表作成に役立てたいと思っております。 ありがとうございました。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SUMIFの代用

    お世話になります。 ファイル2からファイル1へリンクして計算をしてますが、同時に開いてないと更新されない(VALUE)となるため調べましたら、SUMIF・COUNTIF関数はこのような現象が発生するということでした。 ファイル1はSUMIFを多用しており納得はしましたが、SUM+IFに置き換えれば良いとのことで試しましたが、計算結果がうまくでません。 ファイル1:抜粋    A   B   C 1  12/1  AAA  100 2  12/2  AAA  200 3  12/3  AAA  300 4  12/4  AAA  400 5  12/5  BBB  500 というデータがあります。A:日付 B:コード C:数量 ファイル2表にてAAAの合計数量を出したいのですが、 SUMIF([ファイル2.XLS]sheet1!$B:$B、(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C) にてできるのですが、ファイルを同時に開かずに行いたいのです。 SUM(IF([ファイル2.XLS]sheet1!$B:$B=(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C、0)) に置きかえてもうまくでません。 どなたかアドバイスをお願いいたします。

  • 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

  • SUMIFでできるんでしょうか?

    A     B 日付   数値 5/1     3 5/2      5 5/3       2 5/4      4 5/5      3 のようなシートで 日付を入れるとそれ以前の数値の合計を 求めたい場合 =SUMIF(A1:A5,"<=38840",E1:E5) (38840は5/3の数値) とすれば出来るのですが  38840をD1とかのセル参照では出来ないのでしょうか? 他の関数でもあれば教えてください。

  • SUMIFの検索値データの処理の仕方

    添付のような表がsheet1にあります。 実際はもっと行数が多く、型番も200型以上あります。 別の日に同じ型番を売っていることもあるので、sheet1のB列はかなりのデータが重複しています。 sheet2に、品番ごとの個数を表示させているのですが、sheet1での個数の合計とsheet2の個数の合計がいくつか合いません。 検索値はsheet1のB列を別sheetにコピペしたのをフィルタ→詳細設定→範囲を指定する→重複した値の削除で整理して並び替えたのをsheet2のA列にコピペしています。 B列に=SUMIF(Sheet2!$A$2:$A$1000,$A5,Sheet2!$B$2:$B$1000) と入力しています 先月のデータはこれで処理できたのですが、今月は何故だかできません。 個数の総数が1足りないのです。 検索値のデータが足りないのかもしれません。 sheet3には、売上日ごとの売上合計の集計、累計もSUMIFで表示していて、そちらの個数は合っています。 何かいい方法はないでしょうか? sheet2のA列にコピペした値で、sheet1のB列の値から欠けているものを調べるにはどうしたらいいでしょうか? 宜しくお願いします。

  • sumif関数を使って複数シートにまたがる集計を試みているのですが、何

    sumif関数を使って複数シートにまたがる集計を試みているのですが、何度試してもエラーが返ります。複数シートにはどのシートにもA2~G2にわたって、"No""販売日""商品管理ID""商品名""定価""販売個数""販売金額"と入っているシートがシートA~シートHまであります。そこで、すべての扱い商品が記載してあるシートIにそのシートAからHまでの商品の販売個数を集計しようと、E2に=sumif(シートA:シートH!C3:C200,WS-10001,シートA:シートH!F3:F200)と入力したところ、#VALUE!が返ります。 やりたいことは、シートAからHまでの商品の販売個数を集計したいのですが、どなたか解決方法をご存知の方いましたら教えてください!

  • excel vba sumif 月間集計

    excel vba sumif 月間集計 どなたか教えていただけますか? sheet1に1日毎のデータが打ち込まれています。そのデータを同じブック内の月間シートが開いたときに表示してるのですが、31日間分のコードをsumifで処理しているため、かなりのファイル容量となり重くなります。もっと効率的な方法はないのでしょうか、(範囲指定の繰り返し処理等)お願いいたします。 なお、sheet1からsheet5まで日毎のデータをそれぞれ月間シート1~5に集計してます。 例です。 sheet1は   A    B     C    D     E   F・・・・ 1 日  目的  距離  燃料 2 1   社用  50 3 1   私用  60   10  4 2   社用  30 月間シート1は   A   B   C   D E    F 1 日  距離  燃料       1110 2 1  110    10 3 2   30     0  Private Sub Worksheet_Activate() UserForm1.Hide Range("A1").Select '距離数 Range("B2").Value = WorksheetFunction.SumIf(Sheets("Sheet1").Range("A2:A300"),   Range("A2"), Sheets("Sheet1").Range("C2:C300"))   Range("B3").Value = WorksheetFunction.SumIf(Sheets("Sheet1").Range("A2:A300"),   Range("A3"), Sheets("Sheet1").Range("C2:C300"))      ・      ・      ・ '累計 ・・・は、こんな感じ処理してます Dim myRng As Range Dim c As Range Set myRng = Range("F2:F32") For Each c In myRng c.Value = c.Offset(0, -4).Value + c.Offset(-1, 0).Value  Next c  End Sub

  • 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

  • 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で他のシートを参照する。

    シート1の表のA○○ に"合計"の記入がありB○○に合計値が有る場合、シート5の任意のセルに合計値をもってきたいのでシート5のセルに=SUMIF(シート1!A1:A○○○,"*合計*",B1:B○○○))としましたがシート1の合計値はかえってきません。シート1の合計値をかえすにはどうしたら良いでしょうか。

  • エクセル SUMIFで条件をオートフィルする方法

    こんにちは。 貴重なスペースお借りいたします。 商品の価格平均をSUMIFを使って 別シートから参照して出そうと思うのですが B1にこの=SUMIF(sheet1!D1:D10, "りんご",sheet1!E1:E10)を入れて りんごの部分をA1に入力して参照(?)することは可能ですか?    A              B 1 りんご =SUMIF(sheet1!D1:D10, "=A1",sheet1!E1:E10) という様なことをしたいのですが... プラスで、この"=A1"をB1, C1とオートフィルで 連続させることはできないでしょうか( ; x _ x ) この式が有効でないのは理解しておりますので、 他に有効な式がありましたら教えていただけると幸いです。 全然違う関数になっても大丈夫です! 素人でも理解できる解説もしていただけると更にありがたい... よろしくお願いいたします!