No.1ベストアンサー
- 回答日時:
元のシートに挿入された行が2行目以降でしたら、
数式のあるシートの一番上の数式が入っているセルの右下の小さな四角を
マウスポインタでポイントしますと+の形になります。
そこでWクリックしますと、セル参照も上から連続して入力されます。
あとはINDIRECTという関数を使ったり、ROWという関数を使ったりすれば上記の操作をしなくてもすみますが、
これは再計算関数なのでどこかのセルに何か入力したりするたびにExcelは再計算をしてくれて
結構もたもた重いファイルになってしまいます。
この回答への補足
度々のご回答、感謝!です!!
元のデータ行を増やした時に、一覧表の方は自動的に行が増える....というリアルタイムリンクのような事は、できても、データそのものが重くなってしまうという事ですね。
一覧表の方に各月少しずつ余行を持たせて対応するのが、一番簡単な方法でしょうか?
No.6
- 回答日時:
一覧を表示するシートを算式で設定する方法は、ある意味限界があるでしょう。
#1の補足に、
>元のデータ行を増やした時に、一覧表の方は自動的に行が増える....というリアルタイムリンクのような事は、できても・・・
これは、算式が設定してあれば表示することができるかもしれませんが、自動的に行は増えないでしょう。
500行目まで一覧を表示するように算式を設定してあっても、1000行目に入力されたら表示できません。
『一覧』の内容が不明でこの質問の回答としては、 hirorin2004さん の『これもケースバイケースという事になります』が正解だと思います。一覧表の内容が分からないのが難点です。
例えば、列単位にまとめるなら、
A2=INDEX('1月'!$C:$C,ROW())
B2=INDEX('2月'!$C:$C,ROW())
C2=INDEX('3月'!$C:$C,ROW())
のようにして、下にコピーします。書式をユーザー定義で『#;#;』としておけば、0は表示されません。
しかし、算式を登録していない箇所は表示できません。
INDIRECTを使えば、=INDIRECT("A2") や =INDIRECT("'1月'!A"&ROW()) ですが面倒ですね。
一覧という意味から、各シートをパターン的に処理することになるでしょう。
以下、下の例をVBAで表示してみます。
[シート1月]
A B C D
1 種類 項目1 項目2 1月計
2 あい 1 10 11
3 うえ 2 22 24
4 おか 4 44 48
のようなシートが12ヶ月あって、種類と月計をワークシート『一覧』に一覧表示してみます。
Private Sub Worksheet_Activate()
Dim ichiranWs As String '// 一覧を表示するワークシートのシート名
Dim Ws As Worksheet '// ワークシート
Dim WsCot As Integer '// ワークシートカウンタ
ichiranWs = ActiveSheet.Name
For Each Ws In Worksheets
If Right(Ws.Name, 1) = "月" Then
WsCot = WsCot + 1
'// このあたりは例
Ws.Columns("A").Copy Destination:=ActiveSheet.Columns((WsCot - 1) * 2 + 1)
Ws.Columns("D").Copy
Worksheets(ichiranWs).Columns(WsCot * 2).PasteSpecial Paste:=xlValues
End If
ActiveSheet.Range("A1").Select
Next
End Sub
※条件
各月のシートはシート名『**月』
ワークシート『一覧』のコードウインドウに貼り付けます。
『'// このあたりは例』以下の3行のように処理すれば、簡単でしょう。特に算式は必要ありません。
このコードは、ワークシート『一覧』をアクティブにするたびにワークシート『一覧』を更新します。
詳しく教えていただいてありがとうございました。
シートの目的を明記していなかったので、ご回答いただくのに解りづらくて申し訳ありませんでした。
教えていただいたものを、少しずつ整理して勉強しなおしてみます。
ありがとうございました
No.5
- 回答日時:
いえ、ROW関数とCOLUM関数については自動再計算関数かどうかわかりません。
混乱させてしまったようでしたらすみません。
ただ、INDIRECTは確かに自動再計算関数です。
前回の質問から引き続き度々のご回答、ありがとうございました。
自動再計算関数についても多々勉強になりました。
しかしデータがどんどん重くなっていってしまいそうですね、ちょっと欲張りすぎたかもしれません。
少し簡素なデータに押さえておこうと思います。ありがとうございました。
No.4
- 回答日時:
ちょっと余談になってしまいますが、
先ほど自動再計算関数のことについて少し触れました。
下記は、Sheet1のA1の値を引っ張ってくる数式です。
Sheet1のA1の上にセルを挿入してみてください。
この数式は新しいA1の値を引っ張ってきてくれます。
列も同様です。
=INDIRECT("Sheet1!"&ADDRESS(ROW(),COLUMN()))
INDIRECTだけではなくてROWやCOLUMNも自動再計算関数じゃなかったかなと思います。
この数式には自動再計算関数が複数使われていますので、
この数式が1000ほどのセルに埋め込まれていますと、
どこかに数値を入力するたびに(自動再計算関数が3つだとして)3*1000=3000回の再計算がいちいち行われる事になり
スペックの充分ではないマシンにとって辛いものがあります。
No.3
- 回答日時:
(1)例えば、Sheet1のA3に=Sheet2!A3といれ、Sheet1上でA10まで式を複写します。
これでSheet2のA3:A10までの値の変化は即座にSheet1のA3:A10の各セルに反映されます。
(2)Sheet2のA8で1行、行挿入するとSheet1のA8:A10は=Sheet2!A9とかに変化して以前の設定がおかしくならないようにしてくれます。
(3)しかしSheet2に行挿入したからといって、Sheet1にまで行挿入する機能(操作メニュー)はありません。
また関数式によっては、行挿入や削除はできません。
関数式は1つのセルの「値しか」設定できません。
(4)VBAで考えようとしましたが、INSERTメソッドで行挿入を行うのは簡単ですが、(A)INSERTされたイベントを捉えるとか(B)挿入された後からこのセル(この行)が挿入されたものかどうかの痕跡を調べる方法がないと思うので、VBAでも難しいようにおもう。
UsedRangeなどが増加することを捉える方法も
削除と挿入をされると見分けがつかない。
(5)「範囲」の定義とかを使ってどうにかできないか
と思うが判りません。
やや質問の主旨を推定しています。上記のような質問でなければ、お許し下さい。
ご回答ありがとうございます。
関数式に対してちょっと欲張りな事をイメージしてしまったようです。
可能性をいろいろとご指摘いただいてありがとうございました。
今後の勉強の役立てます!
No.2
- 回答日時:
> 一覧表の方に各月少しずつ余行を持たせて対応するのが、一番簡単な方法でしょうか?
データ入力が歯抜けになっていても、支障が無ければそれでいいと思います。
ただ、関数によっては合計範囲に空白があるとエラーになるものもありますので
ケースバイケースですね。
元のデータの並び順が整然としていなくても、
参照先のシートで整頓する事もできます。
詳細な情報がありませんので、これもケースバイケースという事になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) Power Query でのデータの一括修正について 2 2022/05/10 02:00
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excel ドロップダウンリスト(入力規則)に関してです データの入力規則で元データ79000行のド 3 2023/07/17 10:06
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
エクセルで入力シートから別シ...
-
エクセル自動の年月
-
エクセルのワークシートが重く...
-
VBA セルの値と同じ名前のシー...
-
Excel ハイパーリンク先のセル...
-
エクセルVBA:表の内容を担当者...
-
VBAを利用しオートフィルタで日...
-
データの転記・印刷とVBAについて
-
ExcelVBAで、指定したシートに...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセル マクロを使って日々...
-
エクセルについて質問です 日付...
-
Excel VBA 数式を参照範囲分コ...
-
Excelファイルサイズが大容量に...
-
ピボットテーブルから抽出デー...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
エクセルでグラフタイトルが折...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
Excelの中央値の複数条件について
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
VBAでシート名をセルから取得し...
-
エクセルで入力→日付を自動判別...
-
質問:特定文字列から空白行ま...
-
エクセル自動の年月
-
エクセル シフト勤務表から、...
-
エクセル マクロを使って日々...
-
VBAのoffsetの動き方について教...
-
エクセルVBA:表の内容を担当者...
-
Excel日付変更との参照先の連動
-
EXCEL VBA 一致しないデータの...
-
エクセルについて質問です 日付...
-
Excelの選択肢をポップアップリ...
おすすめ情報