初めての店舗開業を成功させよう>>

Excel のピボット集計レポートのセル内容を手書きで上書きした場合、
元データを入れ替えても、更新後必ず、上書したセル内容が表示されるように
なってしまいます。
(セル上で上書きはできませんが、ツールバー上で内容変更ができてしまいます)

この現象は、再度ピボットを作り直せば修正されるのですが、共有で使っているファイルで
変更された事に気づかないと、次月誤ったデータを結果としてみてしまう為、
元データ通り表示する方法があったら教えてください。

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

いいえ。

2003でも問題なく,きちんと行えばちゃんと出来ます。

●更新が行えていない
●フィールドをしっかり外せていない
●ブックに他のレポートが残っている
など,ちょっとやってみただけでまだ作業に漏れがあると推測されます。

再度手順:
 まっさらのブックに元データをコピーし
 レポートを最初から作り
 ご質問の状況を再現するためアイテムを書き換えて
 間違い無く書き換えたアイテムを含むフィールドをレポートから外し
 更新を行ってから
 フィールドを戻して
書き換えたアイテムが復元しているか,再度確認してください。



それでも上手く出来ないときは,具体的にどんな並びの元データから何をどこに配置していて,そしてどこのアイテムをどのように書き換えてみたのか,具体的なあなたのやったことを詳しく教えてください。
一般論で漠然としゃべってる限り上述のように「やればできますよ」としか説明が進みませんので,解決したいのでしたらあなたが具体的にやったことを見ながら,どこの手順に問題があるのか確認しながら進めなければなりません。
    • good
    • 0
この回答へのお礼

keithin 様

丁寧に回答をありがとうございます。

まっさらのブックに元データをコピーし
やり直した場合、手順通りに行うとピポットが戻りました。

毎月使い回しをしているファイルもピポットのシートを削除して、1からやりなおしした状態で上書して
手順のとおり修正した場合データは修正されました。

このシート内に別にレポートが残ってしまっている状態のようです。。。

大変参考になりました

ありがとうございますm(_)m

お礼日時:2011/05/20 16:38

では,ちょっとチカラワザになりますが,マクロを使って全てのアイテムをオリジナルの記載に強制的に復元してしまいます。




手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

Sub Macro1()
 Dim t As PivotTable
 Dim f As PivotField
 Dim i As PivotItem

 For Each t In ActiveSheet.PivotTables
 For Each f In t.RowFields
 For Each i In f.PivotItems
  i.Caption = i.SourceName
 Next
 Next

 For Each f In t.ColumnFields
 For Each i In f.PivotItems
  i.Caption = i.SourceName
 Next
 Next
 Next
End Sub

ファイルメニューから終了してエクセルに戻る
ピボットテーブル(アイテムを書き換えた)を配置したシートを開き,マクロを実行する。
    • good
    • 0
この回答へのお礼

keithin 様

マクロまで提供いただき、大変ありがとうございます。
おちついたらマクロまでまで試してみます!私の知識がない為、VBがあっていてもうまく作動できるか自信がありませんので、少し時間がかかりそうです。。。

ただ、今回の事がはっきりして、大変自分自身には「タメ」になりました。
ありがとうございました。

お礼日時:2011/05/23 13:57

#2です。

御礼に対して
私が言いたかったのは、回答の最後の、「変更履歴が使えないか?」勉強しては、ということでした。
これが可能で、他人の変更箇所がわかれば、その分を元にもどせば、1から作るより速いのではと思った次第。
    • good
    • 0

http://www11.plala.or.jp/koma_Excel/contents3/ma …
に書いてあるのは、基データを修正したとき、ピボットテーブルに反映させるほうですが、データを変更した人が、!をクリックするなどして、一旦ピボットテーブルに反映させても、その後元に戻したいということですか。
http://www.bitscorp.net/pc/?p=2107
のはなしではないですよね。)
元データを別途に保存しておくなどしないと、どうしようもないのでは。
ーー
経験無いですが、ツールー変更履歴の記録、の仕組みは使えないものですか。
    • good
    • 0
この回答へのお礼

imogasi様
お忙しい所、リンク等ご教授いただきありがとうございます。
今後、サイト参考にさせていただきます。
私も書き方も悪く、認識の違いがあり、すみません。
共有されてるファイルを更新されてる事が問題というよりも、その後の修正が、一からピポットを
組みなおす事になるので、方法があれば・・・と思ったのです。
ありがとうございました。

お礼日時:2011/05/20 11:06

実質的には,作り直すしか方法はありません。


若しくは,上書きで書き換えてしまったアイテムを,改めて元の記載内容に再度上書きで書き戻すかです。

簡易にはレポートを丸ごと作り直すのではなく,修正したいアイテムを含むフィールドを一度レポートから外し,一回レポートを更新してから,再度フィールドをレポートに戻すと復元しています。



#ただし同じ元データから「内部データを共有」して複数のピボットテーブルレポートを作成していた場合,その全てのレポートでフィールドをレポートから外して更新する手順を行わなければなりません。

この回答への補足

keithin様

回答ありがとうございます。

>簡易にはレポートを丸ごと作り直すのではなく,修正したいアイテムを含むフィールドを一度レポートから外し,一回レポートを更新してから,再度フィールドをレポートに戻すと復元しています。

とのことですが、上書きしたデータの文字はなおりませんでした。。。

ただし書きを頂いた、同じ元データから「内部データを共有」して複数のピボットテーブルレポートしているということもありません。
バージョンが2003だからかもしれません。。。

補足日時:2011/05/20 11:10
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel > ピボットテーブル「(空白)」非表示

Excel 2003 で、ピボットテーブルを利用した際、元データにて未入力のセルは、ピボットテーブルでは「(空白)」と表示されてしまいます。

これを、任意の文字列や、空白のまま表示(「(空白)」を非表示)にする方法はありますか?

空白セルそのものを非表示する方法は、ピボットタイトル行の▼で「(空白)」をチェックオフすれば消えますが、これでは関係する行の他列も非表示になってしまいます。

ただ「(空白)」ではく、空白のまま表示したいだけなのですが、その方法が分かりません。

宜しくお願い致します。

Aベストアンサー

ピボットテーブルの行や列フィールドの「アイテム」(個々の「あ」や「い」,「A」「B」「1・2・3」,「(空白)」も同じ)は,作成したピボットテーブルの中で「(アイテムの)キャッシュ」として保持されています。
実際今回の「(空白)」だけでなく,たとえば列Bフィールドのアイテム「1」1セルを「1個」と書き換えてみると,レポート上のアイテム1が全部1個と表記されます。
レポートで行列アイテムを直接書き換えることで,キャッシュの中で「元データの1 = アイテム表記は1個」というデータを保持し,以後それを使って表示してくれるためです。


#余談ですが,たとえば「四半期」で日付をグループ化すると,エクセルでは1月から3月が第1四半期として集計されます。
これを日本の四月からの会計年度に合わせて「1-3月」は第4四半期に,そして「4-6月」を第1四半期として集計させたいような場合にも,この方法を利用することができます。

QVLOOKUPによる他シートの値参照

初心者で以下の処理を行うコーディングの方法が分りません。
いろいろと他の質問、サイトを調べましたが、解決できませんでしたので、ご指導頂ければ有り難いです。

(1)"Sheet1"に下記例の通り、2列にデータが並んでいる。
 左列には商品、右列にはその単価がセットされている。

(例)

商品1  \11
商品2  \22
商品3  \33


(2)別シート"Sheet2"の左列には、商品が"sheet1"とは
異なる順序で並んでいる。また同一商品が複数存在することもある。
この商品の右列にそれぞれの単価をセットしたい。

商品3  (Sheet1を参照して値をセット)
商品7  (Sheet1を参照して値をセット)
商品1  (Sheet1を参照して値をセット)


、って感じです。EXCEL関数の"VLOOKUP"を使おうと思っているのですが、どうも思った通りの結果がでません。
商品のデータ数は当然変動するのでVLOOKUPの参照セルに変数を使おうと思っているのですが、
その方法がまずいのでしょうか?

初心者で以下の処理を行うコーディングの方法が分りません。
いろいろと他の質問、サイトを調べましたが、解決できませんでしたので、ご指導頂ければ有り難いです。

(1)"Sheet1"に下記例の通り、2列にデータが並んでいる。
 左列には商品、右列にはその単価がセットされている。

(例)

商品1  \11
商品2  \22
商品3  \33


(2)別シート"Sheet2"の左列には、商品が"sheet1"とは
異なる順序で並んでいる。また同一商品が複数存在することもある。
この商品の右列にそれぞれの単価をセ...続きを読む

Aベストアンサー

#1です。

VBAで?
Sheet2 にVLOOKUP式を入れたいなら可変させるのは入れたい範囲だけで良いと思います。

Sub Test()
Dim r As Range
 With Worksheets("Sheet2")
  .Columns(2).ClearContents
  Set r = Range("A65536").End(xlUp).Offset(0, 1)
  .Range("B1", r) = "=IF(ISERROR(VLOOKUP(A1,Sheet1!$A$2:$B$4,2,0))" & _
              ",""""," & "VLOOKUP(A1,Sheet1!$A$2:$B$4,2,0))"
 End With
End Sub

Qエクセル:マクロ「Application.CutCopyMode = False」って?

エクセルのマクロを記録していると

「Application.CutCopyMode = False」

というものがよく出てきますが、これは何でしょう?
どういう意味のものかわかりません。
削除しても差し支えないのもでしょうか?

Aベストアンサー

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
Range("A1").Select
Selection.Copy
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.Paste ← ココでエラー
------------
ご自分で、セルをコピーしてみると分かると思いますが、コピーした範囲が点線で点滅されます。
「Application.CutCopyMode = False」をすると、
その点滅がなくなります。

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
...続きを読む


人気Q&Aランキング

おすすめ情報