1

編集:すべての回答に感謝します。先に進んで、できるだけ多くのケースをカバーするルールを書き、手動で抽出するか、他のすべてをカバーするためにより多くのルールを修正しようとします。

同じ「タイプ」のデータを同じ列に並べ替えようとしています。基本的に、次のように、一連のデータ (年、会社名、個人名、IO 番号、PO 番号、プロジェクトの説明、コメントの束) が 1 つの列にダンプされるデータ ダンプを取得します。

ここに画像の説明を入力

理想的な最終結果は、同じ列の同じタイプのデータ、つまり列 A のすべての年、列 B のすべての IO、列 C のすべての PO、列 D のすべての個人名、列 E のすべての会社名になるように並べ替えることです。 、残っているものはすべて、列 F の「コメント」セクションにダンプされます。

SUBSTITUTE 関数を使用してこの文字列を通過し、すべてのダッシュとバックスラッシュをコンマに置き換え、コンマ区切り記号に基づいて区切り、テキストをプレーンテキストとして再貼り付けするマクロを作成しました。これはかなりうまく機能しますが、会社名にダッシュが含まれている場合や、その IO/PO を所有する 2 人の人物を示すバックスラッシュがある場合や、2012 のようにすべてのデータが区切り記号なしで入力されている場合を除きます。会社のプロジェクトのタイトル IO ##### PO #### 個人名。

ここで私が尋ねているのは次のとおりです。会社名のダッシュや、ダッシュやバックスラッシュがなくスペースのみの文字列などの例外にどのように対応できますか? 2. このデータをすべて解析し、次のように別々の列に分割 ここに画像の説明を入力 したら、同じ種類の情報が同じ列にあるように並べ替えるにはどうすればよいですか?

どんな助けでも大歓迎です。ご不明な点がありましたらお知らせください。

4

2 に答える 2

1

@Werner の行に沿って「シルクの財布を作ることはできません…」 明らかに、解決策は、ソースデータがより良い形であることを確認するために、ゴミの責任者に頼ることです。ただし、回避策を探していると思います。あなたの例から、いくつかの「知らせ」が可能です。たとえば、ColumnB で並べ替え、2012 が ColumnC にある場合、その行の B と C の内容を交換します。次に、ColumnD で並べ替え、D と E についても同じことを行います。ColumnF にQuote空白のセルが含まれている場合は、右にシフトします。ColumnF が空白の場合、その行の内容を ColumnD と交換します。ColumnD を最後に移動します。ColumnF で以前Quoteのものを選択し、それが空の場合は ColumnE に、そうでない場合は ColumnH に削除します。結果は次のようになります。

SO18131636 の例

-私が予想していたよりもかなり良く、合理的にプログラムできるものの限界について推測します.

于 2013-08-08T17:32:04.653 に答える