2

テーブルにデータセットがあります。1 つのセルで区切られたすべての値を表示できるように、1 つの列を平らにしようとしています。階層でこれを試しましたが、これまで解決できませんでした。サンプル データセットは以下のとおりです。

これが可能かどうか誰にもアドバイスできますか?

╔════════╦════════╦═══════╦═════════════════╗
║ CaseID ║ TestID ║ Batch ║ Flattened List  ║
╠════════╬════════╬═══════╬═════════════════╣
║ A0001  ║ T1     ║ A     ║ T1|  T1 | T2    ║
║ A0001  ║ T1     ║ B     ║ T1|  T1 | T2    ║
║ A0001  ║ T2     ║ A     ║ T1|  T1 | T2    ║
║ A0002  ║ T1     ║ A     ║ T1 | T1         ║
║ A0002  ║ T1     ║ B     ║ T1 | T1         ║
║ A0003  ║ T1     ║ A     ║ T1              ║
║ A0004  ║ T4     ║ A     ║ T4              ║
╚════════╩════════╩═══════╩═════════════════╝
4

1 に答える 1

0

まったく同じ問題で何度も苦労しましたが、PowerPivot で簡単な解決策を見つけることができませんでした。それは確かにデータベースで実行可能です(私が今まで使用した中で最も簡単なのは、 Oracle / PostgreSQLで利用可能なLISTAGG集計関数です-そのオプションが利用可能な場合)。Microsoft の SQL Server のアプローチはそれほど洗練されたものではありませんが、ほとんど同じように機能します。

Excel に限定されている場合、これを行うための最も速くて簡単な方法は、VBA マクロを使用するか、利用可能な拡張機能の 1 つを使用することです。私は個人的にAbleBitsの Excel アドオン パッケージを使用しています(所属は一切ありません)。

の結合機能は、まさにあなたが求めていることを行います。一意の ID (この例ではケース ID) を検索し、それに関連付けられた複数のレコード (テスト ID) がある場合は、選択した区切り文字で区切られた値の配列にそれらを結合します。

以下は、データがどのように変換されるかを示す画面ごとのプロセスを文書化したものです。ただし、欠点があります-データセットが十分に大きい場合(数十万行を考えてください)、これは最速のソリューションではなく、これがどの程度自動化できるかわかりません.

情報源:

ここに画像の説明を入力

行画面の結合:

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

そして、これが最終結果です:

ここに画像の説明を入力

于 2014-08-15T06:17:59.303 に答える