アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (9件)

>やっぱりマクロですかね


チョッと作ってみました。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つのシートにして入力時の時刻でソートするようなマクロを作ると思います。

ご参考に。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/05 21:10

質問にたいしての答えではないのですが


逆の考えの方が簡単に作れそうな気がするのですが

「シート4に入力して、シート1、2、3に振り分ける」ってかんじにしたら
簡単に解決しそうな気がするんですけど

参考にならなかったらごめんなさい
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2001/10/05 21:11

i-haradaです。



EXCELにこだわられているようですが、「データベースソフト」でされたらどうでしょうか、質問の答えではないかもしれませんが。

腰を折ってしまいました。m(_ _)m ごめんなさい
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 21:57

行単位での参照は、No.#2のkapakapaさんが書いておられるように、リンク貼り付けでまとめてできますが、


入力順に格納するというのは、Visual Basic Editorでマクロを組むしかないかと・・・。

ただ、1ヶ月なら1ヶ月まとめて、それに近い形で表示するなら、
行の指定を絶対指定にして、『日付』で並べ替えるという方法もあるかと思います。

なお、入力されるデータが数値ではないということですので、

=if('シート1'!A1="","",'シート1'!A1)

という条件式にした方がよいかと思います。(No.#1の参照式では、入力されていないと、0が表示されてしまいます。)
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 21:55

こんにちは。

maruru01です。
少し補足説明していただきたいのですが。

>でもこれってセル単位でしかできないですよね?
>行単位でできませんか?
行単位ってどういうことなのでしょうか?
例えば、シート1のA1~C1の値をシート4に置きたいということですか。
それならシート4に同じ大きさ(この場合はセル3個分)のスペースが必要で、そのセルの1つ1つに参照式を書かなければなりません。
ただし、シート1のA1~C1を範囲選択してコピー → シート4の任意の場所を選択 → 編集メニュー → 形式を選択して貼り付け → リンク貼り付けで一度に参照式を入力できます。もちろん一度入力してしまえば、その後は元のシート1の値が変わるたびにシート4の値も更新されます。

>あとやっぱりできれば集計表には入力された順に格納されていくような方法がいいんですけど無理ですかね?
集計表に、何が入力された時に、どんな順番で格納(更新のこと?)したいのでしょう。
基本的にセル参照というのは、元のセルが変更されて、値が確定した瞬間に参照先も更新されます。したがって、シート4に参照式を入力しておけば、その後はシート1~3で誰かが内容を変更するたびにシート4も自動的に更新されていきます。

実際にどのシートのどのセルで、どうしたいのかを書いてもらえると、答えやすいんですが。
では。

この回答への補足

具体的に説明させていただきます。質問にも書きましたが例えば項目が(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も更新させていきたいんですけど。まだわかりにくいかもしれませんがお願いします。

補足日時:2001/10/04 21:50
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 21:30

No.#1のRIO-Freakです。



入力されるセルがわかっていれば、あらかじめ式を入力しておいても、参照するシートに入力や変更があれば、結果が反映されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 17:16

あっ、先ほど回答したkapakapa(2番目)ですが、c

http://excel.internet.ne.jp/
サイトの右メニューの
シート参照、ブック参照というところです。
説明不足でした。すみません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 16:38

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


ではでは。
    • good
    • 0

各シートの式や値を参照する時は、例えば、



='シート1'!A1

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

この回答への補足

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

補足日時:2001/10/04 17:03
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/04 16:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!