• ベストアンサー

excelでデータの集計

nishi6の回答

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.8

>やっぱりマクロですかね チョッと作ってみました。ThisWorkBookに貼り付ければ動きます。(Excel2000) しかし完全な粗悪品です。質問に書かれている機能は完全に満たしていますが、Sheet1~3に (1)訂正ができない (2)消去ができない (3)挿入ができない (4)削除ができない (5)他にコピー操作ができない のが欠陥です。 『訂正』については、もう数行追加すれば可能です。 『消去』、『コピー』についてもなんとかなりそうですが、かなり長くなるでしょう。 しかし、行の『挿入』特に『削除』もできるようにするには・・・・もしできても不安定で、余り効果が見込めないような気がしますね。(他の回答者に期待しましょう) 入力者に操作制限を押し付けたくないし、多分、Accessあたりで作り直すと思います。 ↓ここから Const ct = 3 '項目数をセットする Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)   If Target.Cells.Count <> 1 Then Exit Sub '単一セルに入力のみ以下で処理する   Dim rw123 As Long 'シート1、2、3の入力行   Dim rw4 As Long 'シート4の出力行   With Sh     If .Name = "Sheet1" Or .Name = "Sheet2" Or .Name = "Sheet3" Then       If Target.Column = ct Then '最後の項目に入力したら更新する         Application.EnableEvents = False 'Chengeイベントを止める         rw123 = Target.Row '入力行         With Worksheets("Sheet4")           rw4 = .Range("C65536").End(xlUp).Row + 1           .Range(.Cells(rw4, 1), .Cells(rw4, ct)) = _               Sh.Range(Sh.Cells(rw123, 1), Sh.Cells(rw123, ct)).Value         End With         Application.EnableEvents = True 'Chengeイベントが起きるようにする       End If     End If   End With End Sub ↑ここまで >ちょっと今回はexcelにこだわってるんですよ Excelで対応するとしたら、Sheet1~3に入力した時、入力時刻(そのデータを最初に入力した時分秒)を自動的にセットするようにしておき、統合したデータを見たい時にSheet1~3を1つのシートにして入力時の時刻でソートするようなマクロを作ると思います。 ご参考に。

kemu
質問者

お礼

どうもありがとうございます これを参考に自分で勉強してがんばってみます。 またよろしくお願いします

関連するQ&A

  • エクセル 集計 関数で・・・

    経費の集計を随時反映させていきたいのですが、 sheet1に毎日の経費を入力していて、sheet2にその項目ごとに集計を出す    A     B     C 1 ガソリン  3000    2 交通費   500   精算済 3 ガソリン  2000 4 交通費   300 5 交通費   500 sheet1には↑こんな感じです。 さらにC列のように「精算済」になった分は集計に出ない方法。 本など見て調べてはいるのですがなかなかできず困っています、、、宜しくお願いします

  • 【Excel】日付を条件のひとつに指定してデータ集計

    Excel2003を使用しています。 Sheet1   A    B         C 1 4/1  (株)Excel    \100 2 4/1  ACCESS    \300 3 4/1  Excel(株)    \200 4 4/2  Word       \150 5 4/2  Excel       \100 6 4/3  ACCESS(有)  \200 7 4/3  Excel       \100 7 4/3  (有)ACCESS  \100 が入力されている表があります。 Sheet2に   A    B    C 1 4/2  合計値 個数 2 4/3  合計値 個数 Sheet2のA1セルに日付(仮に4/2とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にExcelとします)を検索し、両条件に一致したC列の合計を Sheet2のB1セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 又、上記同様で Sheet2のA1セルに日付(仮に4/3とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にACCESSとします)を検索し、両条件に一致した個数を Sheet2のC2セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 関数で試してみたのですが、うまくいかなかったので、質問させていただきました。 よろしくお願いします。

  • エクセルでのデータ分析・集計について

    Excel2000での質問です。 あるブックの中にシートが10枚ほど含まれています。(ただしこのシートは今後も増え続けていきます) それぞれのシートの中には、1列のみデータが入っており、そこには10ケタ程度のランダムな製品番号がズラーッと1000行くらい入っています。 それぞれのシートは日付ごとに分けられていて、シート名=日付です。 このような時、たとえばある製品番号(番号Aとします)が、 各シートに含まれている可能性があるのですが、 番号Aが含まれている回数を調べるにはどうしたらよいのでしょうか? 他にも、番号B、番号C・・・と、含まれる全ての番号について、全シートにおける出現回数を集計したいのです。 番号Aは全シートの中で6回出現、番号Bは3回、番号Cは10回・・・といったように。 ちょっと質問の書き方が分かりづらいかとは思いますが、 何か良いお知恵がありましたら教えてください。

  • エクセルでの集計について

    初心者です。 エクセルでの集計について教えてください。 sheet1にプルダウンやフォームで入力し、sheet2へ集計させたいのですがやり方がわかりません。 例えばプルダウンの場合、sheet1のA1で都道府県を選ぶとB1には対応する市町村が選択できるようにします。C1には任意で数字を入力していくとします。それを何行か入力します。はsheet2に、A列には都道府県別、B列にはAに対応する市町村、C列には任意の数字が合計されるようなことをしたいのですが・・・。こんな説明でご理解いただけるか心配ですが、なんとかやさしくお教えください。(フォームでの入力がスマートで格好がよさそう・・・。)マクロ等々もぜひともやさしくお教えください。

  • excelのデータ集計について教えてください

    excel2003を使用しています。 項目A  項目B  項目A-1 項目B-1 項目A-2 項目B-2  :    : というようなシートがあります。 項目AにはA-1、A-2といったような分類がされていて、同様に項目Bにもそのような分類がされています。 別シートに、「項目A-1 項目B-1」を含む件数は何件       「項目A-1 項目B-2」を含む件数は何件 といったような集計を行いたいのですが、COUNTIFやANDを使ってもどうもうまく設定できません。何かうまく集計する方法はないものでしょうか。 目下オートフィルタを使って手作業で数えているので自動化できると大変効率があがります。どうか助けてください。

  • エクセルで複数のシートからデータを集計したい。

    エクセルで複数のシートから、あるデータを取り出し、別のシートに集計したいのですが、関数を入力すると莫大な量になってしまいました。 関数とは別の方法で集計する方法をご教授お願いします。 1日~31日のシートがあります。 シート1日内容は A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101   10       15   (b2+c2+d2)  3 105   20   40       (b3+c3+d2) 4 108       20   100 (b4+c4+d4) といった内容です。 1日から31日のセルA2などは固定した数値でありません。 なんで、例えばA3に101が入っている場合があります。 集計シートは A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101               (b2+c2+d2)  3 102               (b3+c3+d2) 4 103              (b4+c4+d4) のようになってます。 B2に=SUMIF('1日'!A2:A4,A2,'1日'!b2:b4)+SUMIF('2日'!A2:A4,A2,'2日'!b4:b4)+・・・・・が31日のシート分まで作成するとファイルが重くなりすぎてしまい困っております。 よろしくお願いします。

  • VBA,二つのExcelのsheetにデータ保存

    VBA初心者です。 皆様のお力をお貸し頂きたく質問させて頂きます。よろしくお願いいたします。 質問内容は、下記になります。 Excelのsheet1には、縦列A,B,C・・・とデータが入っております。 sheet1の例 A B C sheet2は、入力するsheetです。 今回はA列の3行目からとします。 問題は、sheet1の縦の列をA,B,C,Dとすればデータの更新は、出来るのですが sheet1のデータのA,B,C一つ飛んでEまた一つ飛んでGという感じでsheet1のデータを 飛ばしてsheet2に表示、更新(保存)をしたいと思います。 ですので、sheet2のA列の3行目からA,B,C,飛んでE飛んでGとsheet1からデータを 表示させ、さらにsheet2の入力値が変更されると、sheet1のデータが入っている A,B,C,E,Gに更新される仕様です。 sheet1(データが入っています) A , B , C , E , G , 値1 , 値2 , 値3   , 値4 , 値5 sheet2(入力する、入力したデータは、sheet1へ更新される) A列 3行目 、sheet1の値1(A列)が入ります。 4行目 、sheet1の値2(B列)が入ります。 5行目 、sheet1の値3(C列)が入ります。 6行目 、sheet1の値4(E列)が入ります。 7行目 、sheet1の値5(G列)が入ります。 以上です。申し訳ございませんが、ご教授よろしくお願いいたします。

  • 「エクセル」で、「アクセス」のようにデータを呼び出したい

    「Excel2000」を使用しています。 少し、ややこしいのですが… たとえば住所録で、 「sheet1」の 1行目にリストのタイトルが入っていて、 A2、A3…に通し番号、 B2、B3…に名前、 C2、C3…に住所、 D2、D3…に電話番号 が入っているとします。 その時、「sheet2」の (たとえば)A2に 「sheet1のA2」に入っている通し番号を入力すれば、 その行に入力されている名前や住所や電話番号が、 任意のセル(たとえばD10、C8、C9)に表示される… といったことは可能でしょうか? こういったことは「Access」が 得意なんだと思いますが、なんとか エクセルで出来ないものでしょうか? マクロなどを使うのでしょうか? マクロはほとんど触ったことがないのですが、 チャレンジしてみますので お教え願えませんでしょうか。

  • EXCEL2002で集計

    Sheet1に下記のようなシートがあります。 (セルA1)コードA (B1)コードB (C1)コードC (D1)店名 (E1)商品コード (F1)タイトル (G1)価格 (H1)注文数 (J1)備考 このSheet1に受注があるたび入力しています。 教えて欲しいのは、Sheet1にデータを入力する度に、Sheet2以降に該当する行だけを随時出力するにはどうしたらよいでしょうか? たとえば コードA「ABC商事」、商品コード「115-1」に該当する行だけをSheet2に出力したいのです。 Sheet3にはコードA「やまもとや」、商品コード「115-1」・・・のように。 宜しくお願いします。

  • データの集計

    テキストデータで a,10個 b,3個 c,4 a,3個 c,2個 ...のデータがありますが、EXCEL,ACCESSを使用して、Aの合計、Bの合計..の合計を簡単に集計したいのですが、A,B,C..の種類も多くあり大変です。どうすればよいでしょうか?