ピボットテーブルを作成すると、データの表示順が昇順になるようなのですが、それを任意の順序に変えることはできるのでしょうか。
例えば「色」フィールドの内容において
元のリストの順番が
きいろ→みどり→あか
となっていても
ピボットテーブルにすると自動的に
あか→きいろ→みどり
と昇順になるので表示順を変えたいということなのですが。。。よろしくお願いします。

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

A 回答 (1件)

ピボットテーブルも集計も、同一の値をグループ化して成り立っているからだと思います。


これを回避するためにはキーとなる値を文字列にするだけではだめなので
01きいろ→02みどり→03あかのように値の先頭にキーとなる値を付加すれば
よいではないでしょうか?
    • good
    • 0
この回答へのお礼

お礼が遅くなり、申し訳ありません。
ありがとうございました。

お礼日時:2004/01/22 17:50

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

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

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

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

Q【Excel】ピボットテーブルで他のピボットテーブルの値を参照する方法

Excelのピボットテーブルについての質問です。

ピボットテーブルでは、リレーションシップの設定をして、複数のテーブルを参照できますが、
他のピボットテーブルの値を参照することは出来ないのでしょうか。

用途としては、料理毎の食材費をまとめようとしています。
第一のピボットテーブルで食材の費用の平均を出し、
第二のピボットテーブルで使用する食材の平均を合計し、
料理毎の費用を算出しようと思っています。

複数のピボットテーブルを使用すること自体にこだわっているわけではないので、
上記の集計をする別の方法がありましたら、それでも構いませんので、
教えていただけないでしょうか。

Aベストアンサー

ピボットテーブルのデータを取り出すことはできます
GETPIVOTDATA関数を使います。
たぶん、適当なあいているセルに = を書いて
ピボットテーブル内のデータフィールドをクリックすればできていると思います
参考まで

Qエクセル(2002)のピボットテーブルで列の順番をデータ順にしたい

住所録があり、職業別発送数の計を出すためピボットテーブルで職業を列にすると、列の順番が元データと変わってしまいます。会社員、公務員、その他の順番にしたいのです。列で右クリック>順序をすれば変えられますが、データ数が多いといちいち面倒です。何かいい方法はないでしょうか。


職業発送数
会社員10
会社員2
公務員5
公務員3
その他6
その他4

→ これをピボットテーブルでやると

合計 / 発送数
職業合計
その他10
会社員12
公務員8
総計30

Aベストアンサー

「ツール」-「オプション」の「ユーザー設定リスト」に
会社員
公務員
その他
の順を登録しておくと、ピボットテーブルを作成したときにその順番になるようです。

Qピボットテーブル・グラフで週番号順に並べかえたい

お世話になります。Excel2010を使用しております。

ピボットテーブルからピボットグラフを作成しているのですが、テーブル・グラフの項目で「週番号」を基準に作成しております。
その週番号ですが、年をまたいだ時に思った通り並んでくれません。【例】52周(2012年)・1週(2013年)・2週(2013年)と並べたいのですが、昇順・降順にすると2週・1週・52周や1週・2週・52周のようになります。
手動ではできます。
自動で集計を行いたいのですが、何か良い方法はありませんか?
ちなみに週番号は(集計表の)記入日のフィールドに日付が入ると関数にて出すように設定しております。

よろしくお願いします。

Aベストアンサー

週番号(1~53)だけ計算しても,「何年」の値を持ってないので希望する並びになる事はあり得ません。
また日付のグループ化でも「週単位」はありません。

結果的にご相談の事をやらせるなら,

方法1:
日付がA列にあるとすると
=YEAR(A2)&TEXT(WEEKNUM(A2),"-00")
などのようにして,「yyyy-ww」のフォーマットで年の値まで持った番号付けを計算します。

方法2:
A列に日付
B列にWEEKNUM関数
C列にYEAR関数
を並べ,C列,B列でピボットテーブルレポートを集計します。

Qピボットテーブルのデータ名を変える方法

私は英語を使う仕事をしています。
毎日の各時間帯における英語または日本語の電話問い合わせ件数を調べるため、以下の表からピボットテーブルを作成しました。職員は、山田花子と青木さやかの2名です。

  A     B      C      D     E      F
1 日付   時間帯    職員   英語   日本語   合計
2 11月1日 9:00~12:00 山田花子   3     3      6
3 11月1日 13:00~15:00 山田花子   5     8     13
4 11月1日 15:00~18:00 山田花子   6     5     11
5 11月1日 9:00~12:00 青木さやか  1    10     11
6 11月1日 13:00~15:00 青木さやか  2     5      7
7 11月1日 15:00~18:00 青木さやか  2     6      8

「英語」と「日本語」は、行のフィールドにドラッグしました。すると、ピボットテーブルでは、自動的に「合計/英語」「合計/日本語」とデータ名が変わってしまいます。この「合計/」を消すには、どうすれば良いですか?

私は、あくまでデータ名は「英語」「日本語」が良いのです。

私は英語を使う仕事をしています。
毎日の各時間帯における英語または日本語の電話問い合わせ件数を調べるため、以下の表からピボットテーブルを作成しました。職員は、山田花子と青木さやかの2名です。

  A     B      C      D     E      F
1 日付   時間帯    職員   英語   日本語   合計
2 11月1日 9:00~12:00 山田花子   3     3      6
3 11月1日 13:00~15:00 山田花子   5     8     13
4 11月1日 15:00~18:00...続きを読む

Aベストアンサー

質問のご主旨と違うかも知れないことを予めご了承いただきたく。

ピボットテーブルは一度作成したあと、希望のデータだけ表示することもできますよね。
その必要がないという前提なのですが。

ピボットテーブル自体をコピーして、
(これはエクセルのバージョンによって、ピボットテーブルを選択できるものと、そうでないものがあるようです。
その場合は列ごと選択します)
他の場所に「数値の貼り付け」と「形式の貼り付け」をします。
そうすると、ごく普通の「表」ができあがります。
この状態なら変えられます。

他にもっといい方法があるかも知れないのですが、
とりあえず自分はこれでやっています。
この方法でコピーして元のピボットテーブルを削除すると、
サイズが小さくなるというメリットもあります。
(かなり小さくなります)

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

「データを書きだす→範囲を指定してピボットテーブルを作成する」
と言う二つのプロシージャーをいっきにやってるのですが、
二つに区切って実行すると問題ないのですが、一気に実行すると実行時エラーが発生します。

-------------------------------------------------------------
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でも試しましたが同じ結果でした。
エラーを無視以外での対処方法をご教授ください。

「データを書きだす→範囲を指定してピボットテーブルを作成する」
と言う二つのプロシージャーをいっきにやってるのですが、
二つに区切って実行すると問題ないのですが、一気に実行すると実行時エラーが発生します。

-------------------------------------------------------------
Sub tset()
Call 全てのファイル名と作成日時を取得する
Call ピボテを作成する
End Sub
Sub ピボテを作成する()
ActiveWorkbook.Names.Add Name:="範囲の名前", RefersToR1C1:="=Sheet1!R1C1:INDEX(Sheet1!C2,COUNTA(Sheet1!C1)...続きを読む

Aベストアンサー

お示しのコードでは、

●名前を付ける範囲の参照が相対参照になっています。ブックの使い方にもよるのかもしれませんが、「$」がなくても大丈夫ですか。
●「Workbooks.Add」により作製されるブックがアクティブになり、SourceData も、このブックから取っているようです。
 また、「TableDestination:=""」と書いてある箇所があります。
 「Workbooks("ファイル名").Activate」とか、「Worksheets("シート名").Activate」みたいな記述は入れなくてもよいのでしょうか。

参考 URL の例は、1 ファイル内で完結している処理です。「Sheets.Add」を記述することでそのシートがアクティブになっています。

● CreatePivotTable メソッドと PivotTableWizard メソッドが併記されています。
 同じシート上に両者がピボットテーブルを作ることになるので、そのエラーメッセージが出ているのだと思います。
 片方の記述のみを残し、他方はプロシージャから削除します。
 両者はどちらもピボットテーブルを作りますが、どちらを選ぶかは概ね、好みの問題のようです。
 後者では OLE DB というアクセス方法によるデータが使えないとヘルプにあるくらいで、致命的な差はないようです。

参考URL:http://www.relief.jp/itnote/archives/018038.php

お示しのコードでは、

●名前を付ける範囲の参照が相対参照になっています。ブックの使い方にもよるのかもしれませんが、「$」がなくても大丈夫ですか。
●「Workbooks.Add」により作製されるブックがアクティブになり、SourceData も、このブックから取っているようです。
 また、「TableDestination:=""」と書いてある箇所があります。
 「Workbooks("ファイル名").Activate」とか、「Worksheets("シート名").Activate」みたいな記述は入れなくてもよいのでしょうか。

参考 URL の例は、1 ファイル内で完結し...続きを読む


人気Q&Aランキング

おすすめ情報