ExcelのSUMIFSが使えない!2007と2003の互換性の問題とは?

このQ&Aのポイント
  • 2003年のExcelでSUMIFS関数が使えない問題に直面しています。自分のPCは2007年のExcelを使用していますが、相手のExcelが2003年のようです。
  • シート1には会社名、商品コード、商品名、販売個数、販売時間のデータがあります。シート2では商品名と各会社の販売数をまとめた表を作りたいのですが、販売数の計算でSUMIFS関数を使えないため、解決策に困っています。
  • 使用しているExcelバージョンの違いによって、SUMIFS関数が使えない問題に直面しています。2003年のExcelではSUMIFS関数は利用できず、2007年以降のバージョンでのみ使用可能です。
回答を見る
  • ベストアンサー

2003にSUMIFSがなくて困っています。

私のPCは、2007なのですが、相手のエクセルが2003らしく、SUMIFSが使えなくて途方に暮れています。 シート1に 会社名,商品コード,商品名,販売個数,販売時間 A社,1001,下着,4,12:30 B社,1002,肌着,4,12:40 A社,1001,下着,2,15:30 B社,1001,下着,2,17:30 A社,1002,肌着,4,18:40 のようなシートがあり、 シート2に 商品名,A社販売数,B社販売数 下着,6,2 肌着,4,4 といった表を作りたいのですが、 販売数の6を出すのに、SUMIFSがないと方法が分からずに途方に暮れています。 何か良い方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! Excel2003までだとSUMPRODUCT関数で対応するようになります。 SUMPRODUCT関数は配列数式になってしまいますので、 極端にデータ量が多い場合はオススメしません。 3000行程度であれば大丈夫だと思いますが、とりあえず1000行目まで対応できる数式にしてみました。 ↓の画像で左側がSheet1・右側がSheet2とします。 余計なお世話かもしれませんが、Sheet2のA列商品も重複なしに表示するようにしています。 Sheet1に作業用の列を1列設けます。 作業列F2セルに =IF(COUNTIF(C$2:C2,C2)=1,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしてきます。 そしてSheet2のA3セルに =IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!C:C,SMALL(Sheet1!F:F,ROW(A1)))) B3セルに =IF($A3="","",SUMPRODUCT((Sheet1!$C$2:$C$1000=$A3)*(Sheet1!$A$2:$A$1000=B$1),Sheet1!$D$2:$D$1000)) という数式を入れ隣のC3セルまでコピー! 最後にA3~B3セルを範囲指定 → C3セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 注意点 ※ 項目行の1行目は範囲指定しないようにします。 D1セルを範囲指定してしまうとエラーとなりますので、 数値列は文字列セルを範囲指定しないようにしてください。m(_ _)m

satisfied999
質問者

お礼

tom04さん完璧すぎます。 感動して鳥肌が立ってます(今も!)僕にとってはものすごいことです。 本当に感謝します。 OKWEVEにお金を支払う機能がないのが残念です。

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6638/9405)
回答No.2

条件が一つなのがSUMIF()、複数指定できるのがSUMIFS()。 SUMIFSは2007から追加された関数ですから、2003では使用できません。 ですが、すべて"等しい"という条件ならば、条件式1つでも書けます。 例えばF列に「=A1&TEXT(B1,"0")」などとして、会社名と商品コードを結合した列を作ります。 そうしてF列を対象に、「=SUMIF(F1:F999,"=A社1001",D1:D999)」というような集計をすれば、「A社かつ商品コード1001」の集計は取れることになります。

関連するQ&A

  • エクセルで、検索条件と合計範囲の異なる“カウント”

    職場でExcel2003を使っています。 こんなデータを集計する必要が出てきました。  A         B     C     D    E 1会社名     店舗名  商品A  商品B 商品C 2株式会社A  店舗a   0個    12個   13個 3株式会社A  店舗b   1個    12個   0個 4株式会社A  店舗c   0個    0個    0個 5株式会社B  店舗a   5個    12個   13個 6株式会社B  店舗b   0個    0個   13個 7株式会社B  店舗c   6個    12個   3個 8株式会社B  店舗d   0個    12個   14個 ↑この表のデータを、 A社    商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 B社   商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 C社… という表にしたいのですが、ココに入れる関数。 販売個数の方は簡単にいきました、sumif($A$1:$A$8,"会社名"、C$1:C$8)てやればよかったので。 が、取扱店舗数の方が、難問。 sumifだと、検索条件の範囲と、合計範囲って別に設定できるじゃないですか。 “A列で、A社て入っている行の、C列の数字を合計する” という設定が出来る。 ところが、販売店数となると…。 sumifと全く同じ要領で、 “A列で、A社と入っている行の、C列のデータ個数を数える” という作業を、したいんですが…countifでは「A列で、A社と入っている行の数を数える」のが精一杯。 A社    count(C$2:C$4) count(D$2:D$4) count(E$2:E$4)       商品A販売個数   商品B販売個数  商品C販売個数 B社    count(C$5:C$8) count(D$5:D$8) count(E$5:E$8)       商品A販売個数   商品B販売個数  商品C販売個数 C社… とする方法もありますが(上の表の店舗は増えたり減ったりしない予定なので)、最初が大変だし、sumifのように、関数一つで何とかならないだろうか、と…。 配列数式?DCOUNT関数?? すみません、どなたか、お知恵を下さい…。

  • 複数のシート上にある同一のテーブルから今日の売上を集計したい

    こんにちは。 複数の店舗を抱えており、店舗ごとにシート一枚で様々なデータをまとめてます。 A1~G1まで、No.、販売日、商品コード、商品名、定価、販売個数、販売価格となっているときに、それぞれの店舗で今日売り上げたデータを同じテーブル形式(No.、販売日、商品コード、商品名、定価、販売個数、販売価格)で別シートに転記するには何か方法がありますか?並ぶ順番とかはどうでもよく、単に今日の売上品目と販売個数&金額がわかればいいのですが。

  • SUMIFSに日付を使いたいのですが…

    どなたか助けて下さい。 現在のデータとして複数のシートがあり、年月で纏める為にSUMIFSを使おうと考えております。 1枚目のシートには日付が打ち込んであり、年月日まで入っています。(yyyy/m/d) Sheet1 A                 B 2008/11/29(yyyy/m/d)  30 2008/12/29(yyyy/m/d)  50 2008/12/31(yyyy/m/d)  100 2枚目のシートには年月が入力されてあり、「200812」と数字が入っております。 A       B 200812   ? 最終的には2枚目のBに12月の合計を纏めたいので、1枚目の日付を変更したいのですが 書式設定の表示形式のユーザー定義で「yyyymm」にすると表示は「200812」 ですが、当り前の事ながら、データとしてはそのように反応してくれません。 (合計値として150となるようにしたい) そこで、これをどのように結び付けるのか、また別の方法があればと思い どなたか教えて頂ければ幸甚です。

  • エクセルの計算式でできますか?

    エクセル2003を使用してます。 計算式の組み方が分からないので、下記のようなことを実現できる式があれば教えてください。 シート1(商品の基本台帳)   A(記号)  B(商品)    C(元の個数)  D(在庫数) 1 A      リンゴ      100       57 2 B     オレンジ      166      106 3 C      レモン      70        8 シート2(売上げ台帳)   A(日付)  B(記号)   C(商品)   D(販売数) 1 4/7       B     オレンジ   58 2 4/7       C     レモン    15 3 4 5 4/28      A     リンゴ     38 6 4/28      C     レモン     35 7 4/28      B     オレンジ    2 8 9 10 5/3      C    レモン      12 11 5/3      A    リンゴ       5 ・・・・・ ROUNDでシート1の記号を、シート2に打ち込むと商品名が出てくるようになってます。 さらにシート2の販売数をその記号から勝手に計算してもとの個数から引いていき、シート1の在庫数に表示させたいのですが、そんなことができる計算式はありますか?  

  • MySQLのgroup by同士の結合について

    下記のようなSQLについてご指南頂きたく思います。 下記のようなテーブルがあり、 商品毎の売上を販売店毎に 売れた順に格納しています。 <販売テーブル> No | 商品コード | 販売個数 | 販売店コード --------------------------------------------- 1  | 商品A   |   1  | 1 2  | 商品A   |   1  | 2 3  | 商品A   |   1  | 3 4  | 商品B   |   2  | 1 5  | 商品B   |   2  | 2 6  | 商品B   |   1  | 3 7  | 商品A   |   3  | 1 8  | 商品A   |   4  | 2 9  | 商品A   |   1  | 3   上記のテーブルを使って下記のようなデータを取ってきたく考えております。   |商品コード|販売個数              |販売店コード |商品コード毎販売個数合計   |       |※ある商品の店毎の販売総数|          |※ある商品の販売総数   --------------------------------------------------------------------------------   | 商品A  |   4               | 1        | 11   | 商品A  |   5               | 2        | 11   | 商品A  |   2               | 3        | 11   | 商品B  |   2               | 1        |  5   | 商品B  |   2               | 2        |  5   | 商品B  |   1               | 3        |  5   -----------------------------------------------------------------------------   やり方としては下記の(1)と(2)の結合ができれば良いと考えております。   一回のSQLで上記の結果を得られるようにしたいと考えております。   どなたかアドバイス頂ければと思います。   宜しくお願い致します。 (1)下記のようなSELECT文で商品コード毎の集計はできました。    SELECT 商品コード,SUM(販売個数) FROM 販売テーブル group by 販売テーブル.商品コード;   | 商品コード  |販売個数             |         |※ある商品の店毎の販売総数   ---------------------------------------   | 商品A     |  11             | 商品B     |   5          (2)また、下記のようなSELECT文で販売店、商品コード毎の集計もできました。    SELECT 商品コード, SUM(販売個数), 販売店コード FROM 販売テーブル                       GROUP BY CONCAT(商品コード,'and',販売店コード) ;   | 商品コード |販売個数              |販売店コード   |        |※ある商品の店毎の販売総数 |        ----------------------------------------------------   | 商品A   |   4                | 1       | 商品A   |   5                | 2       | 商品A   |   2                | 3       | 商品B   |   2                | 1       | 商品B   |   2                | 2       | 商品B   |   1                | 3       ----------------------------------------------------

    • ベストアンサー
    • MySQL
  • エクセルと検索関数について

    エクセルの関数を教えてください。 Sheet1にA社の商品がありA1に商品コード A2商品名 A3数量。 同じくB社Seet2にA1に商品コード A2商品名 A3数量。 A社にあってB社にない商品だけをSheet3に商品コードと商品名と数量を抽出したいのですが、 検索は商品コードでお願いします。 何回か挑戦したのですができません。 仕事で使いたいのでお手数ですがよろしくお願いします。

  • 「JANコード」と「日付」で販売個数表を作成したい

    エクセルで販売個数表を作成していますが、うまくいかず困っています。 Sheet1のA列に現在在庫している全ての商品のJANコード、B1~AF1にある月の1日から31日までの日付が日付データとして入っています。別ブックのSheet1にA列(販売日)、B列(JANコード)、C列(販売個数)のデータがあり、この販売個数を前述の個数表にJANコードと日付を対応させて入力したいのです。(例えばMというJANコードの品物が14日に2個売れたとしたら、MというJANコードの行の14日の列のセルに2と入れたいということです。)尚、別ブックの販売個数のデータは各商品ごとに1日の総売り上げ個数が出ているため、合算をする必要はなく、C列の数字をそのまま該当するセルに直接入れることができればOKです。 できることならマクロを使って、「別ブックを参照してデータを読み込み、販売個数表に個数を反映」させたいのですが、どのように作ったらよいのか具体的に教えていただけないでしょうか?関数を使って入力する方法もあれば是非、お願いします。

  • VBAでの作表について

    現在sheet2に商品データが入っています。 商品コード 商品名 個数・・・・ A-1    商品A  23 A-2    商品B  45 A-3    商品C  90 A-2    商品B  16 これをsheet1に A-1    商品A  23 A-2    商品B  61 A-3    商品C  90 のように重複はまとめて作表するにはコードはどうすればよいのでしょうか? そして最終行に合計の欄も設けたいのですが是非皆様のお力を貸してください。

  • excelの複数の条件が一致したカウントの関数

    excelのファイル内に、 「商品登録」、「販売実績」の2つのシートがあります。 「商品登録」シートのA列に商品コードが大量にあり、B列にサブ商品コードがあります。 「販売実績」シートのA列にも「商品登録」シートと同じ商品コードの羅列があります。 (販売実績データなので、同じ商品コードが複数あったりします。) 「商品登録」シートのA列と「販売実績」のシートのA列を比較し、 商品コードが一致した場合で、かつ、「商品実績」B列のサブ商品コードの指定した値が入ったセルの 数を数える関数を「商品登録データ」シートのC列に表示したい。 この関数設定方法はお分かりになりますでしょうか? 分かり辛くて申し訳ございません。 必要情報あれば加筆いたします。 どうぞよろしくお願いいたします。

  • Excelで特定の文字のある列の数値を合計する関数

    Excelで、特定の文字列を含む列の数値の合計を、自動で集計してくれる関数はあるでしょうか。 複数シート(シートA、シートB)で構成されるExcelファイルで、シートAにはすべての取扱い商品が記載されています。現在は、シートBに入力されている商品ごとの販売個数の合計をシートB上でsumにより求め、その数値をシートAの該当箇所に、手で入力しています。シートAに記載されている商品が多いため、この手作業を関数で代替したいのです。 ただし、シートBに、次のような条件があります。 シートBの1行目(A1,B1,C1,D1...)には、見出しとして"氏名" "りんご" "バナナ" "いちご"...などがあり、2行目以降は、販売者の名前と、その人が販売した商品の個数が入力されています。掲載人数は40人(行数で41行)ほどです。 ところが、誰も"りんご"を販売していなければ、その列自体がなくなります。シートBには販売された商品しか記載されておらず、たとえばB1は、必ずしも"りんご"ではありません。 シートAからBを参照し、シートBの1行目に、もし"りんご"の文字があれば、そのりんごの列の2行目以降にある販売数の合計を、"バナナ"があれば同じくバナナの販売数の合計を、じかにシートAのそれぞれの合計欄に表示させたいのです。 なお、シートBの行と列を入れ換えたシートB'を作るのは、避けたいと思っています。理由は、販売者の名前でも、全商品の販売個数をシートAにsumif関数で集計していること。また、シートは1週間ごとに、今後30枚程度まで増え、その各週合計もシートAに集計する予定のため、シートは各週1枚だけにしたいのです。 このような条件のもと、Excelの関数で集計する方法があれば、教えてくださいますか。

専門家に質問してみよう