Excelでの売上データのピボットテーブル作成方法とは?

このQ&Aのポイント
  • Excelでの売上データのピボットテーブル作成方法について教えてください。
  • 現在、売上データのピボットテーブル作成について困っています。データが更新されるたびに手動で修正する必要があり、効率的ではありません。より一般化された方法や関数の組み方を教えていただけないでしょうか。
  • Excelの売上データのピボットテーブル作成において、より効率的で一般化された方法を知りたいです。手動で修正する必要があるため、時間と手間がかかってしまいます。関連する関数や方法がある場合、教えていただけますか?
回答を見る
  • ベストアンサー

sumif の応用的活用 範囲の選択

ある売上明細データがあります。ある果物卸売商で、何月何日バナナが100本売れて単価10円合計10000円得意先山田スーパー など。 これをずらっと1年間抽出したものがあり、そこから、ピボットテーブルで、得意先別(行側・左端)、月別(列側・上部)で一覧表を作ります。 さて、データが追加更新された際、毎回ピボットテーブルを作成(そういったマクロを作成)すれば済むことかもしれませんが、まだ私には手間またはレベルが高すぎるように思います。 それで現在、以下のような方法をとっています。 データ(新しい月)が更新されるとごとに、明細データの原本には、その下に貼り付ける形で、追加していきます。それで、すでに作成したピボットテーブルの右側に、新しい列を作ります。その列のタイトル(上のセル)に201804という年月を入れます。そしてその下には、sumifで、範囲指定は、先ほど張り付けたばかりのデータの上部から下部(例えば、5053行目から6420行目まで。それが2018年4月のデータがある範囲)まで具体的数字を入れて指定します。それで左端の得意先名と、データ上の得意先名とを関連付けた形にして、その月のその得意先に対する合計売上額をその列の各行の値として出してきます。 この方法で行くと、毎回、追加した分の各月の、行数の番号を指定する必要があり、あとで1行追加したらすべてを修正する必要もあります。 簡単に、より一般化された形での、関数の組み方、もしくは関数そのものはありますでしょうか。ピボットテーブルに関連する関数とかありそうですが。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.1

>さて、データが追加更新された際、 >毎回ピボットテーブルを作成(そういったマクロを作成)すれば済むことかもしれませんが、 >まだ私には手間またはレベルが高すぎるように思います。 この行(クダリ)です。 ピボットテーブルを作成するときに 売上明細データの埋まった(埋まる)範囲を指定するわけですが、 今後データが追記されることを想定して、 この範囲(縦方向)を広く定義します。 その後、 今回の例では、 5053行目から6420行目までのデータを追記したら、 ピボットテーブルが表示されている適当なところを右クリックして 更新を選択すれば再集計します。 いかがでしょうか。

spongetak
質問者

お礼

なるほどです。詳細には説明していませんでしたが、例えば、201806などと1列目(月の行)入力した、その右のすべてのセルが空白(またはゼロ)のデータを1000行くらいずつ、201807を1000行、・・・と作っておき、それで最初のピボットテーブルを作成し、あとは、実際に数値が上がってきたときに、201806のところに貼り付けていけば、そのようになるはずですね。まだやっていませんが、有力な方法として、やってみたいと思います。お付き合いいただき、ありがとうございます!

その他の回答 (2)

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.3

>後で追加されるかもしれない無限大の行数の範囲まで、 >集計してくれるものなのでしょうか。 はい、そうです。

spongetak
質問者

お礼

そうなんですね!それは知りませんでした。ありがとうございます!

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.2

>201806などと1列目(月の行)入力した、 >その右のすべてのセルが空白(またはゼロ)のデータを1000行くらいずつ、 >201807を1000行、・・・と作っておき このような作業をあらかじめ行っておくことは想定してはいません。 データの埋まった最終行の次行以下、 1列目も含め、全列空欄のままにしておき、 データが増える都度、データ行を追記していくイメージです。 それにより、Pivotテーブル上、 空欄の列、空欄の行が登場しますが、 その行と列は、Pivotテーブル上で非表示にするとか 末尾に移動してから非表示にしてもいいと思います。

spongetak
質問者

お礼

ありがとうございます。ピボットテーブルを集計するさいの実際の定義の仕方がわからないので、そんな風に思ってしまいました。 vlookupだと、参照する表について、ここからここまで、という指定が基本的に必要で、下の方の行について数字を大きくしておいたりする必要があるかと思い、それと同様に、ピボットテーブルでも、最初に参照する表において、セルが入った範囲で集計されるものかと思っていました。セルになにも入っていない行は、その時点で参照されないため、あとで追加しても自動計算しないものかと思っておりました。 その点は気にしなくても、ピボットテーブルというのは、後で追加されるかもしれない無限大の行数の範囲まで、集計してくれるものなのでしょうか。

関連するQ&A

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

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

  • エクセルのピボットに新しい範囲変更

     ある表を元にピボットテーブルを作成した後、元の表の行や列を付け加えた時、作ったピボットにも新しい広い範囲を適用させるにはどうしたら良いでしょうか? 新しいピボットを作り直し、範囲を広く指定し直さなければならないでしょうか?    宜しくお願いします。

  • エクセルのピボットテーブルのVBAで、データ範囲の選択時に前の範囲を使用したい時

    同一ブック内で同一データ範囲を基に、ピボットテーブルを2つ作成する時、 2つ目のピボットテーブルの範囲選択の時、初めに作ったテーブルを利用する時の 表現の仕方を教えて下さい。 尚作られるブック名前は、あるセルに指定した名前の一部を読み込むものとします。 エクセル2000です。 初めに作ったピボットテーブルの名前は "ピボットテーブル1"です。 自動記録した結果は、ブック名を読み込まず "売上1-4"とした時下記(1)のようになりました。 (1)2つ目のテーブルを作る際の自動記録結果  Sheets("商品別").Select   ActiveSheet.PivotTableWizard SourceType:=xlPivotTable, SourceData:= _ "[売上1-4.xls]得意先別!ピボットテーブル1", TableDestination:= _ "'[売上1-4.xls]商品別'!R3C2", TableName:="ピボットテーブル2" ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("得意先コード", _ "得意先", "データ"), ColumnFields:="売上月", PageFields:="商品名" With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("売上数量") .Orientation = xlDataField .Caption = "合計 : 売上数量" .Position = 1 .Function = xlSum End With これをブック名を読み込んだかたちで下記(2)のように書いたところ Set ソースデータ元 = "[売上" & Range("F1") & ".xls]得意先別!ピボットテーブル1"の所でとまって 実行時エラー"13"  型が一致しません  とでてしまいました。  (2)読み込み型で作成   Sheets("商品別").Select With ActiveWorkbook With Sheets("操作")    '操作というシートのセル "F1"にブックの名前の一部を示してある   Range("F1").Select Set ソースデータ元 = "[売上" & Range("F1") & ".xls]得意先別!ピボットテーブル1" Set テーブル定義 = "'[売上" & Range("F1") & ".xls]商品別'!R3C2" End With With .Range("B1").Select .PivotTableWizard SourceType:=xlPivotTable, SourceData:=ソースデータ元, TableDestination:=テーブル定義,   TableName:="ピボットテーブル2" ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("得意先コード", _ "得意先", "データ"), ColumnFields:="売上月", PageFields:="商品名"  With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("売上数量")   .Orientation = xlDataField   .Caption = "合計 : 売上数量"   .Position = 1   .Function = xlSum   End With  End With

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

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

  • Excelのピボットテーブル データ範囲について

    Excelのピボットテーブルについて質問です。 ピボットテーブルのデータ範囲内に、 非表示になっている行があります。 その状態でピボットテーブルを作成すると 非表示行もデータも含まれて集計されてしまいます。 非表示行は含めずにピボットテーブルを作成する方法は ないのでしょうか? 非表示行の特定が難しいため(複数あり)データ範囲から 外すのは難しいかと思います。。 Excelは2007です。 よろしくお願いいたします。

  • エクセルのVLOOKUP関数の応用

    VLOOKUP関数は、 ”AがBXとCYの範囲内でその左端のどれかと一致すればその行のD列目のデータをコピーする”というような文法で使うと思います。 それの発展系として、 "AがBXとCYの範囲内でその3列目のどれかに一致し、かつ、その行の左端が”合計”ならばその行のD列目のデータをコピーする”というようにできないでしょうか。 すなわち検索する列番号を指定することと、それに検索する条件を1つ付加するということです。前者の問題は列を入れ替えれば良いのですが、もしあれば教えて頂きたいです。後者の問題の方が切実なのですが。よろしくお願いします。

  • ピボットテーブルで月の表示について

    ピボットテーブルにてデータを作成中です。基のデータには1月から12月までデータが入っておりますが、ピボットで更新させ、月を4月だけ選びたく月の列の▼をクリックしても1月から3月までしか表示がありません。なにか範囲の指定が間違ってるのでしょうか?よろしくお願いいたします。

  • EXCELでデータが入っている最終行までの合計

    現在、EXCEL2000で各月の全得意先の合計を求める式を作っています。 データは現在B列に得意先コード・C列に得意先名D列以降はVLOOKUP関数で別シートから求めた各月の得意先の売上金額を求めています。 D6セル:VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) 例えば、現在D6からD1149までにデータが入っており、別シートの得意先元リストの件数が増えれば、自動的に下の行にスライドするようになっています。その為、数行余分に予め関数を入れた空欄の行を作っています。 B6セル:OFFSET(元リスト!$B$6,ROW()-6,COLUMN()-2) 現在D1158にD6からデータの入っている最終行まで合計を関数で表示させたいのですがうまくいきません。ネットでも色々探しているのですが、私の検索の仕方が悪いのか中々見つかりません。 LOOKUP関数となにかを組み合わせて、得意先コード(B列)の空白になっている時、その一つ上のD列の行を参照できるようにできればいいんじゃないかとは思うのですが。 もし、いい方法があればご教示願います。

  • エクセルのマクロで特定の文字列を選択したい

    集計表にピボットテーブルを2つ入れるマクロを作成しています。 その際に、出来あがったピボットテーブルの項目ごとの合計を 表示しないためには、対象となるセルを選択して(Select) 表示しないを選択する(Selection.Delete)ことはマクロの記録からわかりました。 しかし、ピボットテーブルの枠が固定されているわけではないので、 合計欄の選択がうまくできません。 結果的には、A列の何行目かに「B在庫」という文字列が表示されていて、 その下からピボットテーブルが作成されています。 その「B在庫」の文字列から「右に3、下に2」と「右に1、下に5」 進んだセルをそれぞれ指定して(Select)削除(Selection.Delete)したいと思っています。 どのように「B在庫」と入力された文字列を探し出すのか、 また、そこから「右に3、下に2」と「右に1、下に5」進んだセルを 指定する方法を教えていただけないでしょうか。

  • ピボットテーブルで日付をグループ化 日付が文字列になる

    こんにちは。エクセル2003です。 ピボットテーブルウィザードを使い、 ピボットテーブルを作成し 行のフィールドに日付をドラッグして グループ化→「月」「日」を選択してOKを押すと 画像のようになります。 この時、日付が「○月○日」という表示形式になり C列でデータタイプを調べたところ、「2」になり、文字列となっています。 元データではなくピボットテーブルで作成した日付の情報を取得してまだ作業することがあるので 元の年月日がわかるようにしたいのですが不可能でしょうか?

専門家に質問してみよう