excel2000での質問です
例えば同じexcelのファイルで
シート1にAさんが、決まったフォーマットで入力するとします。項目は 名前、日付、訪問先・・etcです。(数値ではありません)
そしてシート2にBさんが同じフォーマットで入力。シート3にはCさんという具合に入力します。
そして最後にシート4にAさんBさんCさん全てのデータを同じフォーマットで統合したいのです。
しかしA、B、Cさんはそれぞれ随時(毎日)更新しているので、それぞれが自分のシートに入力するだけで自動的にシート4も入力(更新)されていくようにしたいのです。簡単そうだと思い色々調べてみたのですがうまくいきませんでした。最終的にコピ&ペ-ストすればいいだけなのかもしれませんが、もし可能ならと思いまして。
説明が下手で申し訳ありません。
どなたか詳しい人教えてください。
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つのシートにして入力時の時刻でソートするようなマクロを作ると思います。
ご参考に。
No.6
- 回答日時:
行単位での参照は、No.#2のkapakapaさんが書いておられるように、リンク貼り付けでまとめてできますが、
入力順に格納するというのは、Visual Basic Editorでマクロを組むしかないかと・・・。
ただ、1ヶ月なら1ヶ月まとめて、それに近い形で表示するなら、
行の指定を絶対指定にして、『日付』で並べ替えるという方法もあるかと思います。
なお、入力されるデータが数値ではないということですので、
=if('シート1'!A1="","",'シート1'!A1)
という条件式にした方がよいかと思います。(No.#1の参照式では、入力されていないと、0が表示されてしまいます。)
No.5
- 回答日時:
こんにちは。
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:50No.3
- 回答日時:
あっ、先ほど回答したkapakapa(2番目)ですが、c
http://excel.internet.ne.jp/サイトの右メニューの
シート参照、ブック参照というところです。
説明不足でした。すみません。
No.1
- 回答日時:
各シートの式や値を参照する時は、例えば、
='シート1'!A1
というように半角の『'』と『!』をつけて表します。(この例では、シート1のセルA1の値が参照されます。)
この回答への補足
すいません。別にあとから入力しても反映されるんですよね。勘違いしてました。でもこれってセル単位でしかできないですよね?行単位でできませんか?あとやっぱりできれば集計表には入力された順に格納されていくような方法がいいんですけど無理ですかね?
補足日時:2001/10/04 17:03早速の回答ありがとうございます
でもこれって集計する表のセルに、参照するデータのある場所を指定すると言うことですよね。
この方法はデータ入力が済んだものに対して行うと言うことですよね?そうではなくてあらかじめ設定しておいて、シート1等に入力すると自動でシート4に書き込まれるようにしたいのですが。わかっていなかったらすいません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 計算式を教えて下さい 3 2022/12/15 19:46
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) Excelで行削除をすると… 1 2023/07/26 11:57
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel VBAを使った重複行の抜き...
-
VBAでシート名をセルから取得し...
-
エクセル シフト勤務表から、...
-
指定した日付の範囲内でデータ...
-
Excel日付変更との参照先の連動
-
Excelの中央値の複数条件について
-
ピボットテーブルから抽出デー...
-
Excelの選択肢をポップアップリ...
-
Excel 複数のシートからグラフ...
-
エクセルのワークシートが重く...
-
エクセル:複数シートのデータ...
-
EXCEL VBA 一致しないデータの...
-
【Excel】VLOOKUP関数で複数の...
-
質問:特定文字列から空白行ま...
-
ExcelVBAで、指定したシートに...
-
エクセルにて別シートの値を参...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
ExcelVBAで、指定したシートに...
-
エクセルのワークシートが重く...
-
IF, ISNUMBER, INDIRECTの組み...
-
VBA セルの値と同じ名前のシー...
-
Excel ハイパーリンク先のセル...
-
エクセル シフト勤務表から、...
-
Excel 複数のシートからグラフ...
-
VBAでシート名をセルから取得し...
-
Excelの中央値の複数条件について
-
エクセルについて質問です 日付...
-
エクセルで入力→日付を自動判別...
-
VBAのoffsetの動き方について教...
-
エクセル自動の年月
-
エクセルVBA:表の内容を担当者...
-
エクセル 毎日更新する表のデ...
-
エクセル マクロを使って日々...
-
質問:特定文字列から空白行ま...
-
EXCEL VBA 一致しないデータの...
-
エクセルにて別シートの値を参...
おすすめ情報