• ベストアンサー

excelでデータの集計

excel2000での質問です 例えば同じexcelのファイルで シート1にAさんが、決まったフォーマットで入力するとします。項目は 名前、日付、訪問先・・etcです。(数値ではありません) そしてシート2にBさんが同じフォーマットで入力。シート3にはCさんという具合に入力します。 そして最後にシート4にAさんBさんCさん全てのデータを同じフォーマットで統合したいのです。 しかしA、B、Cさんはそれぞれ随時(毎日)更新しているので、それぞれが自分のシートに入力するだけで自動的にシート4も入力(更新)されていくようにしたいのです。簡単そうだと思い色々調べてみたのですがうまくいきませんでした。最終的にコピ&ペ-ストすればいいだけなのかもしれませんが、もし可能ならと思いまして。 説明が下手で申し訳ありません。 どなたか詳しい人教えてください。

  • kemu
  • お礼率88% (8/9)

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

  • ベストアンサー
  • 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
質問者

お礼

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

その他の回答 (8)

noname#6451
noname#6451
回答No.9

質問にたいしての答えではないのですが 逆の考えの方が簡単に作れそうな気がするのですが 「シート4に入力して、シート1、2、3に振り分ける」ってかんじにしたら 簡単に解決しそうな気がするんですけど 参考にならなかったらごめんなさい

kemu
質問者

お礼

ありがとうございました

  • i-harada
  • ベストアンサー率22% (56/252)
回答No.7

i-haradaです。 EXCELにこだわられているようですが、「データベースソフト」でされたらどうでしょうか、質問の答えではないかもしれませんが。 腰を折ってしまいました。m(_ _)m ごめんなさい

kemu
質問者

お礼

すいません ちょっと今回はexcelにこだわってるんですよ

noname#1489
noname#1489
回答No.6

行単位での参照は、No.#2のkapakapaさんが書いておられるように、リンク貼り付けでまとめてできますが、 入力順に格納するというのは、Visual Basic Editorでマクロを組むしかないかと・・・。 ただ、1ヶ月なら1ヶ月まとめて、それに近い形で表示するなら、 行の指定を絶対指定にして、『日付』で並べ替えるという方法もあるかと思います。 なお、入力されるデータが数値ではないということですので、 =if('シート1'!A1="","",'シート1'!A1) という条件式にした方がよいかと思います。(No.#1の参照式では、入力されていないと、0が表示されてしまいます。)

kemu
質問者

お礼

ありがとうございます。 やっぱりマクロですかね 勉強したほうがいいですよね

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 少し補足説明していただきたいのですが。 >でもこれってセル単位でしかできないですよね? >行単位でできませんか? 行単位ってどういうことなのでしょうか? 例えば、シート1のA1~C1の値をシート4に置きたいということですか。 それならシート4に同じ大きさ(この場合はセル3個分)のスペースが必要で、そのセルの1つ1つに参照式を書かなければなりません。 ただし、シート1のA1~C1を範囲選択してコピー → シート4の任意の場所を選択 → 編集メニュー → 形式を選択して貼り付け → リンク貼り付けで一度に参照式を入力できます。もちろん一度入力してしまえば、その後は元のシート1の値が変わるたびにシート4の値も更新されます。 >あとやっぱりできれば集計表には入力された順に格納されていくような方法がいいんですけど無理ですかね? 集計表に、何が入力された時に、どんな順番で格納(更新のこと?)したいのでしょう。 基本的にセル参照というのは、元のセルが変更されて、値が確定した瞬間に参照先も更新されます。したがって、シート4に参照式を入力しておけば、その後はシート1~3で誰かが内容を変更するたびにシート4も自動的に更新されていきます。 実際にどのシートのどのセルで、どうしたいのかを書いてもらえると、答えやすいんですが。 では。

kemu
質問者

お礼

どうもありがとうございます 補足させて頂きます

kemu
質問者

補足

具体的に説明させていただきます。質問にも書きましたが例えば項目が(1)名前(2)日付(3)訪問先(4)交通手段だったとします。まずAさんがシート1のセルA1、B1、C1、D1にA、10/4、新橋、電車と入力したとします。次にBさんがシート2のA1、B1、C1、D1にB、10/4、池袋、タクシーと入力したとします。そしてその後Cさんがシート3のA1、B1、C1、D1にC、10/5、横浜、バスと入力したとします。この時点でシート4のA1、B1、C1、D1にA、10/4、新橋、電車;A2、B2、C2、D2にB、10/4、池袋、タクシー;A3、B3、C3、D3にC、10/5、横浜、バスとなるようにしたいのです。そしてこの後もA、B、Cがランダムに入力していっても、入力順にシート4も更新させていきたいんですけど。まだわかりにくいかもしれませんがお願いします。

noname#1489
noname#1489
回答No.4

No.#1のRIO-Freakです。 入力されるセルがわかっていれば、あらかじめ式を入力しておいても、参照するシートに入力や変更があれば、結果が反映されます。

kemu
質問者

お礼

すいません。別にあとから入力しても反映されるんですよね。勘違いしてました。でもこれってセル単位でしかできないですよね?行単位でできませんか?あとやっぱりできれば集計表には入力された順に格納されていくような方法がいいんですけど無理ですかね?

  • kapakapa
  • ベストアンサー率22% (31/139)
回答No.3

あっ、先ほど回答したkapakapa(2番目)ですが、chttp://excel.internet.ne.jp/ サイトの右メニューの シート参照、ブック参照というところです。 説明不足でした。すみません。

kemu
質問者

お礼

ご親切にありがとうございます でもやっぱりやりたいことと少し違うみたいです。 すいません

  • kapakapa
  • ベストアンサー率22% (31/139)
回答No.2

セル参照の説明が下記のサイトに載っていますので、参考になれば・・・ ではでは。

参考URL:
chttp://excel.internet.ne.jp/
noname#1489
noname#1489
回答No.1

各シートの式や値を参照する時は、例えば、 ='シート1'!A1 というように半角の『'』と『!』をつけて表します。(この例では、シート1のセルA1の値が参照されます。)

kemu
質問者

お礼

早速の回答ありがとうございます でもこれって集計する表のセルに、参照するデータのある場所を指定すると言うことですよね。 この方法はデータ入力が済んだものに対して行うと言うことですよね?そうではなくてあらかじめ設定しておいて、シート1等に入力すると自動でシート4に書き込まれるようにしたいのですが。わかっていなかったらすいません

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..の種類も多くあり大変です。どうすればよいでしょうか?

専門家に質問してみよう