質問

私のセラーにあるすべてのワインのボトル、いつ購入したか、いくら支払ったかなどをリストしたシートがあります (例としてワインを考えてみましょう)。

「フルーティー、白」などのカンマ区切りのタグでワインを説明する列があります。

そのデータから説明をフィルター列として使用してピボット テーブルを作成しました。ただし、「白」でフィルタリングすることはできません。「ドライ、ホワイト」、「ホワイト、クリスプ」など、「ホワイト」を含むすべての説明を見つけなければなりません。

RDBMS のバックグラウンドを持つ私の自然な傾向は、ワイン行に対してキー設定された独自のテーブルにタグを配置して、ワイン行ごとに 0 個以上のタグ行が存在するようにすることです。

いったいどうやってそれを使ってワインの列をフィルタリングできるのでしょうか?

役に立ちましたか?

解決

はい、Excel 内で行うことができ、カンマ区切りの値を分割する必要がないため、説明フィールドは「Dry、White」などのままにすることができます。

テーブル ソースが説明のテキスト列、値の数値列、および購入年の数値列で構成されているとします。

ピボットは次のように設定されています

  • 田畑:説明、価値、購入年。

  • 列ラベル:購入年

  • 行ラベル:説明
  • 値の合計:価値の合計

行ラベルにはドロップダウン ラベル フィルターがあります。これをクリックすると、ラベル フィルターを選択するオプションが表示されます。これを選択してから、「次を含む」を選択します。「白」と入力すると、白を含むすべての説明が選択されます。「辛口、白」「白、シャキシャキ」。フィルターには?が含まれます。は単一の文字を表し、* は一連の文字を表します。

「begins with」と「ends with」、および否定にも同様のラベル フィルターがあります。

Excel 2007 でこれを試しましたが、2003 でも機能するはずです。Excel 2003 では、フィルターを組み合わせることもできると思います。「ホワイト」が含まれ、「ドライ」が含まれていませんが、2007 年にはこれを行う方法が見つかりませんでした。

他のヒント

私は明白なことを述べていた場合、私を許していますが、ここで問題を抱えている理由は説明の列が1NFではなく、Excelのピボットインタフェースはパターンベースの検索を可能にするのに十分に柔軟ではないということです。

ワインカラーの1列、甘さのために1、原産国のための1というように - -

最も簡単なオプションは、単一の属性をそれぞれ表す列のシリーズにCSVを正規化することになり、全体でフィルタを適用します複数の列。ワインがあなたの本当の問題のメタファーである(質問に対するあなたのコメントが示唆するように)しかし、もし、あなたがソースデータの設計を再訪の贅沢を持っていない可能性があります。

別の可能性は、マクロを使用するかもしれない(またはデータベースクエリを - 私はあなたの質問から明らかではないよあなたはすでにタグシステムを実装しているかどうか)に基づいて、ピボットテーブルのソースシート上の入力データを事前にフィルタリングしますタグを使用すると、そのデータに基づいて、再度更新し、ピボットテーブルを検索したい値ます。

第三の可能性は、この質問をhref="https://stackoverflow.com/questions/764504/speed-up-pivot-table-filtering-vba-code">

= IF(ISERR(( "白"、UPPER(B5)))、0,1を見つける。)

余分な列を作成し、数式を追加。これまで2つのトリックがあります。検索は大文字と小文字が区別され秀でる事実を打つために - 一つは、上部を使用して記述欄にWHITEを検索することです。そうISERRがいることを罠にあなたをできるようにし、それがない場合、それはないか、1ない場合は、この例では0を返します - 二つの文字列が存在しない場合、それは値エラーを返すことです。あなたは、1と0のために白と空白置き換えることができます。

あなたはデータをループし、説明欄に項目をカンマ区切りごとに新しい行を追加するスクリプトを書くことができます。これは、ピボットテーブルは、より良いフィルタリングできるようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top