• ベストアンサー

ピボットテーブル データ範囲の自動更新

今ピボットの範囲がこうなっていて '1'!$A$1:$X$32040 増える範囲は右に?Yの列に増えるという感じなのですが 横に増えてもINDEXとCOUNTAの関数でいけるのでしょうか? 名前の定義で作ってみたのですが、参照が正しくありませんと表示されます。 コピーできる数式を教えてもらえればありがたいです。 よろしくお願い致します。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>横に増えてもINDEXとCOUNTAの関数でいけるのでしょうか? 出来ますが,別のやり方の方が簡単です。 ところで,COUNTAで勘定できる「前提」をはっきりさせておく必要があります。 例えば 縦に何行有るかは,「A列のデータの個数で漏れなく数えられる」 横に何列有るかは,「1行目のデータ個数で漏れなく数えられる」 のように。 名前の定義の数式の作成: 名前 myList 参照範囲 =OFFSET('1'!$A$1,0,0,COUNTA('1'!$A:$A),COUNTA('1'!$1:$1)) など。 もしどーしてもINDEX+COUNTAを使いたくて仕方ないなら 参照範囲: ='1'!$A$1:INDEX('1'!$A:$IV,COUNTA('1'!$A:$A),COUNTA('1'!$1:$1)) などのように,間違えずに作成する事でも出来ます。

e-h-m
質問者

お礼

出来ました! ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>すみませんバージョンは2003です Excel2003ならリストの機能を利用します。 http://allabout.co.jp/gm/gc/297732/3/ このようにして作成したリスト(テーブル)でピボットテーブルを作成してみてください。 #Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

e-h-m
質問者

お礼

ありがとうございました。 バージョンも気をつけるようにします!

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

参考までに もし関数で対応するなら、INDEX関数よりもOFFSET関数の方がわかりよいと思います。 =OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))

e-h-m
質問者

お礼

ありがとうございます。 1度やってみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

数式で対応することもできますが、以下のようなテーブルとして書式設定の機能を使えば、データ範囲に応じて自動的にテーブル範囲が拡大されます(縦方向だけでなく横方向に項目追加しても、「更新」すれば自動的に新しい項目も追加されます)。 バージョンが明記されていないので、Excel2007の例で説明すると、リスト上にカーソルを置いてホームタブの「テーブルとして書式設定」をクリックしてください。

e-h-m
質問者

補足

すみませんバージョンは2003です。 同じようなやり方が出来たりしますでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 自動でピボットテーブルの範囲も加算したい

    エクセルのピボットテーブルでA列にはファイル名、B列には作成日が入っているのですが 今はピボットテーブルの範囲は Sheet1!$A$1:$B$522 になっています。 でも、シート1の行(レコード)は、日々追加されるので、 自動でピボットテーブルの範囲も加算したいのですが その方法を教えていただけますか? INDEX関数とcount関数を使ってた気がするのですが、 見つけられません。 よろしくお願いします。

  • ピボットテーブル参照範囲を可変としたい

    ピボットテーブルの範囲 ●Sheet1のシート  A3:E13まで入っている状態。  (※A1とA2には文字などが入ってる) ↓ 今後、14、15,16、、、とAからEまで 行数が増えていきますが そのたびに 範囲を変更していたら大変です。 で可変にしたいのですが あるサイトを参考に 名前-範囲をつけ その範囲を 関数にしたのですが =Sheet1!$A$3:INDEX(Sheet1!$E:$E,COUNTA(Sheet1!$A:$A)) こうすると 範囲指定がうまくいきません なぜだか後ろから2行目は選択されないようになってしまいます。 どのようにしたらよいのでしょう どのように

  • excel ピボットで別Bookのリストを可変参照

    ピボットで同Book内の可変参照は問題なく出来るのですが、それを応用して以下のように別Bookにあるリストを可変参照しようとしています。 名前の定義<名前> list 名前の定義<参照範囲> ='(フォルダアドレス)\[Book名](ファイル名)'!$A$1:INDEX('(フォルダアドレス)\[Book名](ファイル名)'!$F:$F,COUNTA('(フォルダアドレス)\[Book名](ファイル名)'!$A:$A)) ピボットウィザード1/3<データの場所> エクセルのリスト・データベース ピボットウィザード2/3<範囲> list 『エラー:参照が正しくありません』となります。 そもそも『ピボットで他のBookを名前の定義で可変参照』というのが不可なのでしょうか。 色々調べては見たのですが、行詰ってしまいました。 ご存知の方がいましたらご回答お願い致します。

  • Excel ピボットテーブル エラーメッセージ

    Excel2003使用です。 ピボットテーブルウィザードを完了しようとすると、以下のようなメッセージが表示されて、完了できません。 「このワークシートの数式に、1つまたは複数の無効な参照がふくまれています。 有効なパス、ブック、範囲名、およびセル参照が数式に含まれていることを確認してください。」 何がイケナイのかわかりません。。。 表の選択範囲もイロイロ試してみました。 ピボットテーブルを作れない表の形などはありますか? おわかりの方、よろしくお願いします。

  • ピボットテーブルの範囲を選択する事はできますか?

    ピボットテーブルの範囲を選択する事はできますか? ピボットテーブルをクリックして、 CTRL+Aを押すと、 現在アクティなピボットテーブル全体を選択できます。 この動きをマクロの記録で取ってみたのですが Sub Macro1() Range("A3:B9").Select Range("B8").Activate End Sub しか記録されてませんでした。 やりたいことは、該当のピボットテーブル全体を選択し、 その範囲に名前を付けたいのですが まずピボットテーブルの範囲を選択するマクロ(VBA)を作成したいです。 ピボットテーブル名を指定して範囲を選択することはできないのでしょうか? Cells(Rows.Count, "A").End(xlUp).Row など最終行、最終列を取得していくしかないのでしょうか?

  • データを書きだす→範囲を指定してピボットテーブル

    「データを書きだす→範囲を指定してピボットテーブルを作成する」 と言う二つのプロシージャーをいっきにやってるのですが、 二つに区切って実行すると問題ないのですが、一気に実行すると実行時エラーが発生します。 ------------------------------------------------------------- Sub tset() Call 全てのファイル名と作成日時を取得する Call ピボテを作成する End Sub Sub ピボテを作成する() ActiveWorkbook.Names.Add Name:="範囲の名前", RefersToR1C1:="=Sheet1!R1C1:INDEX(Sheet1!C2,COUNTA(Sheet1!C1))" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="範囲の名前"). _ CreatePivotTable TableDestination:="", TableName:="ピボットテーブル", _ DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) End Sub Sub 全てのファイル名と作成日時を取得する() Dim MyRow As Integer Dim MyFileName As String Dim MyFolderName As String Workbooks.Add Cells(1, 1) = "ファイル名" Cells(1, 2) = "作成日時" MyRow = 2 MyFolderName = "C:\Users\Documents" MyFileName = Dir(MyFolderName & "\*.*") Do While MyFileName <> "" Cells(MyRow, 1) = MyFileName Cells(MyRow, 2) = CreateObject("scripting.filesystemobject").GetFile(MyFolderName & "\" & MyFileName).DateCreated MyFileName = Dir() MyRow = MyRow + 1 Loop End Sub ------------------------------------------------------------- このコート度実行すると ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="範囲の名前"). _ で、 実行時エラー 1004 "指定したシートには既に同じ名前のピボットテーブル レポートが存在します" になります。 しかし、Workbooks.Addをやっているので、上記のエラーはありえないはずです。 そしてこの実行時エラーが出た後は、デバッグ→F5で、最後まで問題なく実行されます。 エクセルのバージョンは2003です。2007でも試しましたが同じ結果でした。 エラーを無視以外での対処方法をご教授ください。

  • セル範囲に名前を定義する

    セル範囲に名前を定義して、計算式の中で使いたいのですが、 例えば、A列全体にAという名前、B列全体にBという名前を付けて、 =Counta(A)と記述すれば、A列にあるデータの個数が出てきます。 =Counta(B)と記述すれば、B列にあるデータの個数が出てきます。 一つの計算式にCounta関数が10個以上あって、AとBを書き換えるのが面倒なのですが、 特定のセルC1にAと入力したらCounta(A)、Bと入力したらCounta(B)になるようには出来ないでしょうか? =Count(C1)と入力してもダメでした。

  • Excel2003 ピボットテーブルについて教えて下さい

    Excel2003 ピボットテーブルについて教えて下さい Excel2003でピボットテーブルを作っています。 まず「ブックA」の「シートA-1」にあるデータをもとにして、 新規シート「シートA-2」にピボットテーブルを作りました。 その後、「ブックB」の「シートB-1」にあるデータでピボットテーブルを作ろうとしたのですが、 「シートA-1」「シートB-1」はフィールド項目も表示したい表の形もまったく一緒なので、 「ブックA」のピボットテーブルを流用しようと考えました。 なので「ブックA」のピボット「シートA-2」を、「ブックB」内にコピーして、 その後「ブックB」に新しくできたピボットテーブルの参照範囲を「シートB-1」のデータにしました。 ピボットテーブルは無事にできたのですが、 フィールド名の右の▼をクリックすると出てくるリストに、 「シートA-1」のものと、「シートB-1」のものが混じって表示されてしまいます。 「ブックB」のピボットテーブルには、「シートB-1」のものだけを表示したいのですが…。 フィールドのリストで要らないものを削除する方法、 または、そもそもピボットテーブルのコピー自体でもっと良い方法があったら教えて下さい。 よろしくお願いします。

  • ピボットテーブルの検索

    ピボットテーブルを作成し行と列のフィールド項目を検索しそれを他のシートから参照させたいのですが、行の列にはコードで区分し、列のフィールドは月で区分させています。日付はグループとアウトラインの設定で月単位にまとめています。 INDEX(A6:J16,MATCH(A1,A6:A16),MATCH(B1,A6:J6))でそれぞれの交点を参照させたいのですがA1をコード入力、B1を月入力にした場合、コードは1月~9月まではMATCH関数の値がかえってくるのですが10月~12月にした場合#N/Aが帰ってきてしまいます。原因は何になるのでしょうか? 教えてください。       A       B      C      D 1  コード項目   月項目 2 3 4 5  合計:金額   日付 6    CODE      1月     2月    3月 7   1010    100,000   150,000    200,000 ピボットテーブルはこんな感じになっています。 宜しくお願いいたします。

  • Excelのピボットテーブル参照において

    始めまして、エクセルのピボットテーブルで セルを参照すると GETPIVOTDATA関数が自動的に行われてしまいます。 以前のエクセル2000の時は参照したセル(例えば=C5)が表示されていたので 計算式をコピーしやすかったのですが 2002になってからは自動的にGETPIVOTDATA関数になってしまう為、コピーが出来ず 手入力で(=C5)としないといけないので、非常に面倒くさいです。 勝手にGETPIVOTDATAが出ないようにする方法はないでしょうか? 宜しくお願い致します。

専門家に質問してみよう