0

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

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

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

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

どうすれば、一体どうやってそれを使ってワインの行をフィルタリングできますか?

4

4 に答える 4

1

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

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

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

  • フィールド: 説明、値、および購入年。

  • 列ラベル: 購入年

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

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

「で始まる」と「で終わる」だけでなく、否定にも同様のラベル フィルターがあります。

Excel 2007 でこれを試してみましたが、2003 でも動作するはずです。Excel 2003 では、「白」を含み、「乾燥」を含まないなど、フィルターを組み合わせることもできると思いますが、2007 年にはこれを行う方法が見つかりませんでした。

于 2009-12-24T17:27:11.590 に答える
0

当たり前のことを言っているのなら許してください。しかし、ここで問題が発生している理由は、説明列が1NFになく、Excelのピボットインターフェイスがパターンベースの検索を可能にするほど柔軟ではないためです。

最も簡単なオプションは、CSVを一連の列に正規化し、各列が単一の属性(ワインの色、甘さ、原産国など)を表し、複数の列にフィルターを適用することです。ただし、(質問に対するコメントが示唆しているように)ワインが実際の問題のメタファーである場合は、ソースデータの設計を再検討する余裕がない可能性があります。

もう1つの可能性は、マクロ(またはデータベースクエリ-タグシステムを既に実装しているかどうかはわかりません)を使用して、タグ値に基づいてピボットテーブルのソースシートの入力データを事前にフィルタリングすることです。検索して、そのデータに基づいてピボットテーブルを再更新します。

3番目の可能性は、この質問で使用されているVBAです。これは、ピボットテーブルの表示行をカスタムフィルター処理するように見えます。

于 2009-10-12T07:32:29.587 に答える
0

= IF(ISERR(FIND( "WHITE"、UPPER(B5)))、0,1)

追加の列を作成し、数式を追加します。これには2つのトリックがあります。1つは、説明列でupper-を使用してWHITEを検索し、Excelの検索で大文字と小文字が区別されるという事実を打ち負かすことです。2つは、文字列が存在しない場合に値エラーを返すことです。したがって、iserrを使用すると、それをトラップし、この例では、存在しない場合は0を返し、存在する場合は1を返します。1と0の代わりに白と空白を使用できます。

于 2009-10-12T08:25:18.470 に答える
0

データをループ処理し、説明列のカンマ区切りの項目ごとに新しい行を追加するスクリプトを作成できます。これにより、ピボット テーブルのフィルタリングが改善されます。

于 2009-10-12T17:01:04.723 に答える