2017-12-12 16 views
2

私は常に新しく異なるフォーマットでデータを与えられます。私は簡単な使い方のためにデータを標準化するための努力をしています。データを標準化する力を納得させることができれば、この問題は全く問題になります。それまでは、次のような問題がありました。ファジーマッチングを使用して動的にピボットテーブルを作成する

私はさまざまな方法でデータを取得しています。時々、私の総売上高は総売上高と呼ばれます。割引前の総売上高、割引前の総売上高、Gross_Salesなど割引、控除、免除金額などは別の列を形成します。そういうわけで。

1)私が望む列を見つけよう。
2)これらの列をピボットテーブルに変えてください。

パート1の場合、私には2つのオプションがあります。もう1つあります。第1は、Microsoftのファジーマッチングアドインを使用して一致させることです。私は、必要な各列をあいまいにするための専用のタブを用意しています。 2番目は、すべてのバリアントの長いリストを生成し、ヒットするまでテストし、割り当て、次のテストに移動することです。

第二部は、ピボットテーブルにこのすべてを回している - 私はこれまでhttps://www.thespreadsheetguru.com/blog/2014/9/27/vba-guide-excel-pivot-tablesHow to Create a Pivot Table in VBA

ありきresoucesは、より良い方法はありますか?別の方法がありますか?

編集:やや良い方法 - データ列を取得してテーブルに配置し、そのテーブルのすべてをピボットする - ピボットテーブルを再作成する必要がなくなり、データを移動するだけで済みます。

答えて

2

同じ問題があるので、2つの方法を組み合わせて使用​​します。

私のデータは、拒否されたX線画像のログで構成され、拒否の理由はフリーテキストフィールドです。私の解決策は、最初の列に希望の出力カテゴリが含まれているテーブルを作成し、その後の各列にさまざまなバリエーションが含まれているテーブルを作成することでした。これらはすべてそれぞれからかなり異なること

位置付ける、POS、位置決めエラー、患者位置決め

例えば、行は(列1 /最初のエントリouputを)可​​能性がありますその他。ファジーマッチングが来るところでは、小さな相違点や誤字をすべて取り込むために使用されます。他の列。ファジー・マッチング・セクションが、特定の理由が列の項目と一致すると判断すると、表の列1からの適切な出力理由と置き換えられます。私の例では、 'Possibleing Err' [sic]の理由が3列目(Positioning Error)と一致し、Positioningに変換されます。

その後、必要に応じてデータの残りの部分をすすいでください。このアプローチは、データを標準化するのに非常に便利で柔軟性がありました。それは計算上より高価でしたが、私が推測したところで一致部分を実行するだけで済むでしょう。

これを行うことの実際の仕組みについては、私は2010を使用しているため、組み込みの機能はありません。最高のパーセンテージの一致が見つかるまで、一時的なワークシート上でファジー・マッチング・コードを実行し、その後、実際のソース・データを上書きします。

+0

私はフリーテキストの問題で同様のことをしていました。正規表現を調べると、フリーテキストで驚くほどです。 https://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops – Selkie

+0

ありがとう、彼らは計算上より簡単かもしれません。私はまだ誰かが、どういうわけか、正規表現がそれを拾うことができないように、ひどく誤ったものを誤って入力するための、 – lolsail

関連する問題