2016-09-17 7 views
1

Excelワークブックには、あるワークシートの連絡先情報と別のワークシートのフォームが含まれています。フォームワークシートのリストに表示する連絡先FULLNAMEのフィルター処理されたセットを持つ別のワークシートを作成したいとします。 FULLNAMEのピボットテーブルで作業していますが、項目をグループ化しないでLASTNAMEにソートを追加することはできません。これは私が望むものではありません。データの重複をExcelピボットテーブル複数のフィールドとグループ化を使用しない並べ替え

UPDATE含まれていない任意の提案:

だから私はそれは部分的に私はこの方法でそれを望むように取り組んでいます。下の図は、ワークシートの表に基づくピボットテーブルです。名前がファーストネームでソートされていることがわかります。私は彼らがそれが期待されているグループので、などのデータを、もちろん、私はPiviotテーブルに姓を追加するときに私は姓で並べ替えることができ姓で

enter image description here

をソートしたいと思います。

enter image description here

あなたは姓グループのエントリを見ることができるように私のフォームリストで私にこの結果を与える

enter image description here

も望ましくない、リストに表示されます。

更新: 以下のAndreasソリューションといくつかの変更を使用して、この問題を解決することができました。他の誰かがそれを必要としていることを知っているので、完成したソリューションを投稿しています。

したがって、下の画像でAndreasソリューションを使用すると、ピボットテーブルの右側に最初のデータセットが表示されました。あなたが見ることができるように、スペースがあり、そのテーブルをリストに束縛して見苦しいものになります。だから次のマクロ関数を使用して、私は空白なしで列3のデータを作成することができました。次のように機能がある...

=IFERROR(INDEX(SortedSpacedRange,SMALL((IF(LEN(SortedSpacedRange),ROW(INDIRECT("1:"&ROWS(SortedSpacedRange))))),ROW(A1)),1),"") 

よりもむしろ使用して、私は「SortedSpacedRange」と呼ばれる第2の列のデータのうち、テーブルを作成した関数内のデータを範囲でした。これは、私が複数のシートにわたってそれをよりよく使用することを可能にする。機能を挿入するには、Ctrl + Shift + Enterを使用することを忘れないでください。私は今、最後の名前を持っているの下にあなたが見ることができるように

enter image description here

は、私がunspaced表の最初の行にpurposfully配置以外のスペースなしでリストを並べ替え。

enter image description here

私は誰かが、これは重宝願っています。再度ありがとうAndreas

+0

あなたが何を求めているのかわからない、私はあなたがいくつかの画像を投稿する必要があると思う。しかし、私がそれを理解すれば、あなたは他のピボットテーブルにリンクすることができますか? – Andreas

+0

私はもう少しテストをしました。本当に必要なのは、1つのシートにテーブルを持ち、そのデータの異なるサブセットを持つ2枚目と3枚目のシートがあることです。私はそこからフォームのリストのデータを取得することができますが、2番目と3番目のシートに参照データが含まれるようにしたいので、テーブルを更新するとシートに更新が反映されます。私は、現在私が見ているもののいくつかの画像で操作を更新します。 – Tim

答えて

1

私はあなたが必要とするものを見ます。
はほんの数日前、私はここに、ピボットテーブルから項目を整理する方法を尋ねた:
https://stackoverflow.com/questions/39383971/how-can-i-detect-pivot-table-new-items

何が必要です:

Function IsItem(c) 
    If c.IndentLevel <> 0 Then ' I think this will work, not tested. Typing on my phone 
     IsItem = True 
    Else 
     IsItem = False 
    End If 

End Function 

の項目場合、これがfalse/trueを返しますピボットテーブルは新しいアイテムまたは "合計"です。

EDIT:

だから新しい列にピボットテーブルの隣に次の式を使用し、明らかに、ピボットテーブルが私の悪い、で始まり、A1れていません。セルを最初のものに置き換えてください。編集の終わり。 EDIT 2:最初のA4であることがわかりました。終了の編集2.

=if(A4="","",if(IsItem(A4),A4,"")) 

最初にセルを確認し、空であれば空を返します。
空でない場合は値を調べ、フルネーム(姓だけではない)の場合は名前を返し、それ以外の場合は空です。

この式を入力すると、フォームリストで使用できる完全な名前の一覧のみが表示されます。

シートに式を追加する前に、vbaコードをモジュールに配置し、ファイルをマクロ化されたブックxlsmとして保存する必要があります。

+1

ありがとうAndreas、それは私の問題を解決しました。私は新しいデータセットから空の行を削除するようないくつかのことをしなければなりませんでしたが、それがうまくいけばそれは私が探していたものです。 – Tim

関連する問題