プロが教えるわが家の防犯対策術!

行いたい処理のイメージ

___A_______B   
1_価格__税番 
2_100____5
3_500____8
4_1300___5
5_10______1
6_930____3
7_4950___5

↓ ピボットテーブル化

 (価格)
  ↓   
_____A_____B____C____D_____E
1___________5____8____1______3  ←(税番)
2__100___100
3__500_________500
4__1300_1300
5__10_________________10
6__930______________________930
7__4950_4950


通常このような処理はピボットテーブルを使うと思うのですが、
行いたい処理は 価格の並び順と税番の並び順を元の表のものから
まったく変えずにピボットテーブルをつくることです。
普通にピボットテーブルを作ると
自動的に列と行の順序が共に並び替えられます。
ユーザー設定リストも試したのですが、単純な文字列でないと
指定する並び順を設定できないようで、、、

最終的に処理後の表のようになるのであれば、ピボットテーブルに
拘らずネスト関数などでの処理でも問題ありません。

どなたかお詳しい方、お知恵を貸してください。

A 回答 (2件)

前提として価格についても「同じ価格が現れる可能性がある」とすると、サイドナンバーを振ってピボットテーブルレポートで並べてしまうのが簡単そうです。



添付図:
A列 ただの1から連番
B列 価格
C列 税番
D列 =IF(ROW()=MATCH(C2,C:C,0),MAX($D$1:D1)+1,VLOOKUP(C2,C:D,2,FALSE))

番号と価格を列に配置
税番号と税番を行に配置
合計/金額を配置
「EXEL 行,列の並び順を変えないピボッ」の回答画像1
    • good
    • 0
この回答へのお礼

サイドナンバーですか!その手があったんですね。
D列の関数も教えていただいて、助かりました。
早速実行してみます。

本当にありがとうございました。

お礼日時:2013/06/05 10:47

こんばんは!



ピボットテーブルではなく、Sheet1のデータをSheet2に表示するようにしています。
作業用の列を設ければ関数でできると思いますが、
VBAでやってみました。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, j As Long, cnt As Long, c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Cells.ClearContents
wS1.Range("A:A").Copy wS2.Cells(1, 1)
cnt = 1
For i = 2 To wS1.Cells(Rows.Count, 2).End(xlUp).Row
Set c = wS2.Range("1:1").Find(what:=wS1.Cells(i, 2), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
cnt = cnt + 1
wS2.Cells(1, cnt) = wS1.Cells(i, 2)
End If
Next i
For i = 2 To wS1.Cells(Rows.Count, 2).End(xlUp).Row
j = WorksheetFunction.Match(wS1.Cells(i, 2), wS2.Range("1:1"), False)
wS2.Cells(i, j) = wS1.Cells(i, 1)
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ 関数でないので、Sheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
    • good
    • 0
この回答へのお礼

VBAまで書いていただいて、恐縮です。
この方法も今後のために実行して、身につけたいと思います。

すばやいご回答、本当にありがとうございました。

お礼日時:2013/06/05 10:49

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