• ベストアンサー

エクセルの集計について質問です。

いつもお世話になっております。 集計を使用しないで関数やマクロを使用して計算することは可能でしょうか? こういったリストを 名称 1日 2日 3日… りんご 1  0  3 りんご 0  0  1 みかん 1  1  4 なし   0  0  2 みかん 1  0  0 こんな感じに集計したいのです。 名称 1日 2日 3日… りんご 1  0   4 みかん 2  1   4 なし   0  0   2 順番とかは特に拘っておりません。 宜しくお願い致します。

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

  • ベストアンサー
  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

次のようなマクロを作成しました。 このマクロでは、作成したリストの一番最後の行を入力して、そこから一行明けてから 集計を開始するものです。 リストの最初の行は2行目と固定しています。 後はリストのn0からn行目までのA列の名称を順次コピーして、同じものがある場合、追加しない 無い場合追加する、B列の合計をするというものです。  Sub Macro1() Dim n, n0, k, k0, k1 As Integer Dim v1, s1, ss As Integer ' 'リストの最初の行 n0=2 と固定 n0 = 2 n = InputBox("リストの最後の行番号は") '集計の最初の行 k0 = n + 2 k = k0 For i = 2 To n If i = 2 Then Range("A" & CStr(k)).Value = Range("A" & CStr(i)).Value Else k1 = 0 For j = k0 To k If Range("A" & CStr(i)).Value = Range("A" & CStr(j)).Value Then '同じ名称がある場合 k1 = j End If Next j If k1 = 0 Then '新しい行作成 k = k + 1 Range("A" & CStr(k)).Value = Range("A" & CStr(i)).Value Else k = k1 End If End If 'B列の足し算 s1 = Val(Range("B" & CStr(i)).Value) v1 = Val(Range("B" & CStr(k)).Value) ss = s1 + v1 Range("B" & CStr(k)).Value = ss 'C列の足し算 s1 = Val(Range("C" & CStr(i)).Value) v1 = Val(Range("C" & CStr(k)).Value) ss = s1 + v1 Range("C" & CStr(k)).Value = ss 'D列の足し算 s1 = Val(Range("D" & CStr(i)).Value) v1 = Val(Range("D" & CStr(k)).Value) ss = s1 + v1 Range("D" & CStr(k)).Value = ss 'E列以降も必要ならここに追加する Next i End Sub ここまでです。取り合えずのプログラムですので、入力エラーなどには対応していません。 それと指定した行番号以下のセルは自動的に上書きしてしまいますので、動かすときは オリジナルデータを保存しておいてから、テスト実行でお願いします。 必要なデータが消えてしまわないように注意お願いします。

DEC2010
質問者

お礼

laputartさんへ 出来ました!まさに私が求めていたものです。 他にもいろいろ応用できそうで助かります。 本当にお世話を掛けました。 有難うございました。

その他の回答 (1)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

例えば集計される部分が2行目から50行目とします (りんご、みかん、なし、りんご、りんご、みかんなどなど) 集計する行を51行目とします。 A51 に りんご を入力 B51には関数で  =sumif($A$2:$A50,$A51,B$2:B$50) と関数を作成します これは A2から A50の名称の内 A51と同じものがあれば、その行のB列を合計して B51に計算結果を返すものです。 B51をそのままC,D, Eにコピー可能 建てB52,B53にもコピー可能です。

DEC2010
質問者

お礼

回答有難うございます。 申し訳ありません、説明不足でした。 現在、SUMIFを使用しlaputartさんと同じように集計していましたが りんご等の名称は沢山あり入力に手間がかかってしまい、 りんご等の名称を入力させないで質問した通りに関数やマクロで集計結果が 出来ないでしょうかと思いました。

関連するQ&A

  • エクセルの集計

    エクセルの集計で質問します。 A列に「りんご」か「みかん」が入っている行を集計したいと思っています。    A 1 りんご、なし 2 みかん、もも 3 りんご、みかん 4 ぶどう 5 りんご 6 ぶどう、もも 7 みかん という表があると、期待している集計値は「5」なのですが、どのような関数を使えばよいかわかりません。 よろしくお願いします。

  • エクセル データ集計について

    エクセルのデータ集計についてご教示下さい。 (1)まず、以下のような項目があるとします。 (重複は無し) りんご みかん ぶどう (2)次に以下のようなデータがあるとします。 (重複あり。順番はランダム) ぶどう みかん ぶどう そして(1)と(2)から以下のような集計結果にするにはどのような関数を使うと良いでしょうか? (|はセルの区切りと思って下さい) りんご | 0 みかん | 1 ぶどう | 2 以上よろしくお願いします。

  • エクセルでの集計に関して

    こんにちは。いつもお世話になっております。 例えばですが、以下のようなCVSのデータがあります。 (エクセルで開けます。) 昇順 降順に変更可能です。 これが、何週間分かあり、タブがあって日にちごとに見れますが、 30件ほどの品目の、200件ほどのデータが50件ずつにのみ表示されます。 4/1分データ    品名   売り上げ数   りんご1  100    りんご2  200    みかん1  300    みかん2   400    バナナ1  500             次の50件→ -------------------------------------------- 4/2分データ    品名   売り上げ数   りんご1  1000    りんご2  2000    みかん1  3000    みかん2   4000    バナナ1  5000   バナナ2  6000   アボガド  7000   いちご   8000     次の50件→      ↓続く これを、エクセルで下記のようにしたいのです。 ********************************************** ID  品名    4/1分集計 4/2集計  4/3集計  4/4集計  4/4集計~~ A   りんご1  100   1000    300 B   りんご2  200   2000    400  C   みかん1  300   3000    500 D  みかん2   400   4000    600 E   バナナ1  500    5000    700 D  バナナ2        6000    800 E  アボガド       7000    900 F  いちご       8000    1000 日にちによって当然、新たな項目、アボガドやいちごがあったりします。みなさんでしたら、最速で一番簡単に行う為にどうしますか? ちょっといそいでてお知恵をどなたか下さい! ご教授下さいますようお願い致します。

  • Excelで困ってます。

    会社で売上表を作って集計をしていますが、どうもうまくいきません。 どなたかお教えいただけないでしょうか? 売上表はこんな感じです。 A列に売上げ商品の一覧があります。 (例えば、りんご・みかん・メロン・りんご・桃・・・みたいな感じで100個ぐらい) もちろん同じ商品の重複もございます。 別シートに特定の商品リストがあります。 (例えば、りんご・みかんみたいな) 集計としましては、その日の売上商品の中で、別シートのリスト(上記の場合はりんごとみかん)と同じ商品だけを抽出し、その商品の隣の列(たとえばこの場合はB列)に「○」と表示させたいのです。 特に合計数を集計したいわけではありません。ただ○をつけたいだけです。 B1に試した関数は =IF(A1=シート2!$A$1:$A$2,"○","") です。 (この場合、シート2のA1からA2に特定商品のリストがあるとします) この関数だとエラーが出てしまいます。 マクロなどを使わずに、関数で解決できないでしょうか? よろしくお願いいたします。

  • 種類別・期間別の集計

    下のような表での種類別・期間別の集計をしたいのですが?    A   B    C 1  8/1 10.000 りんご 2  8/2 50.000 みかん 3  8/4 12.000 りんご 4     10.000 ぶどう    ・ 10  8/15 5.000 みかん 11  8/16 25.000 ぶどう    ・ 26  8/30 13.000 りんご 35  8/31 8.000 みかん 毎月1日から15日と16日から月末までの各”りんご””みかん”2ぶどう”の個別の集計をしたいのですが日付が入る関数が分かりません。 月は毎月替わりますが、1日から15日と16日から月末は変わりません。 日付のセルには空白のセルが入る事があります。 よろしくお願いします。

  • Excelで集計

    時間 商品 13:00 みかん 13:00 みかん 13:05 ぶどう 13:05 ぶどう 13:05 りんご 13:07 りんご 13:07 りんご 13:07 ぶどう Excelで上記のような表があった場合、各時間ごとに(売れた数ではなく)何種類のものが売れたかを集計したいと思っています。 (13:00では1種類、13:05では2種類、13:07では2種類といった感じです。時間に規則性はありません。) こういう目的に適した機能はないでしょうか?それともマクロを作成しないといけないでしょうか。 ちなみに、データは2000行ほどあります。 詳しい方、ご教授願います。

  • EXCEL 集計の方法

    おせわになります。 EXCELにあるデータを集計したいのですが、「集計」機能では対応できませんので、何か良い方法がありましたらお知らせくださいますようお願いいたします。 ------------------------------------------ A列    B列  C列 ○○会社 りんご 1500円 ○○会社 みかん 1000円 ○○会社 みかん 1000円 △△会社 りんご 1500円 △△会社 みかん 1000円 ------------------------------------------ というデータがあったとします。 今回はB列ごとに集計するのではなく、 A列ごと、B列ごとの集計です。 つまり、 ○○会社 りんご1500円 ○○会社 みかん2000円 と、いうことです。 何かよい方法はありますでしょうか? よろしくおねがいします。    

  • エクセル データの集計表を作成する

    シート1のデータを集計してシート2に結果を出したいのですが、関数を使いどのように行えば良いかお教えいただけますでしょうか。 りんご  A みかん  A りんご   りんご  B ぶどう   このようなデータがあり 1.その中にある項目を自動で一つ出し、 2.それぞれ済の分を集計して・・・ Aの集計 商品   個数 りんご   1 みかん   1 ぶどう   0 というようにしたいのですが、どなたかお答えいただけますでしょうか?よろしくお願い致します。

  • エクセルの関数について、質問させて頂きます。

    エクセルの関数について、質問させて頂きます。 現在カウントイフ関数を使ってアンケート集計用のシートを作っています。 そのアンケートの複数回答の設問の集計結果を出す際に、 Aという縦軸の1つのセルに りんご りんご,みかん,ぶどう みかん,ぶどう ぶどう このような形で出てきているデータを りんご2件 みかん2件 ぶどう3件 以上のように集計したく、 =COUNTIF(A2:A50000,AN9) ※AN9にはりんごと入力されています 上記の式で計算をしているのですが、 実際に出てくる結果は りんご2件 みかん1件 ぶどう1件 上記のように、最初の部分だけしか読まれずに 結果が出されてしまいます。 ~~を含むといった形で指定出来ればと思うのですが、 調べても結果が見つからないので、どうかお力をお貸しください。 よろしくお願いいたします。

  • エクセルで質問です!

    エクセルで質問です! A   B 1 出荷日 出荷品 2 1月2日 りんご 3 1月3日 みかん 4 1月4日 なし 5 1月5日 りんご 6 1月6日 なし 7 1月7日 りんご 8 1月8日 みかん 9 1月9日 りんご 10 1月10日 りんご 11 1月11日 なし 上記の様な表があって、このりんごの出荷の最終日を C1のセルに みかんの最終出荷日をC2のセルに返すにはどういった関数を使えば良いでしょうか? 単一ならできるのですが…同一の検索ワードがあるとうまく出来ません… 関数のみでこれって出来るでしょうか?