web-dev-qa-db-ja.com

WordのアウトラインをExcelの列に変換する

Wordには、次のようなアウトラインがあります。

  • レベル1A
    • レベル2C
      • レベル3D
  • レベル1B

アウトラインレベル/インデントに基づいて列に変換したい:

Col 1        Col 2        Col 3
Level 1 A  
             Level 2 C
                          Level 3 D
Level 1 B

最終的に、私はそれをデータベース形式にしたいと思います:

ID           Parent
Level 1 A  
Level 2 C    Level 1 A
Level 3 D    Level 2 C
Level 1 B

私は最初の部分で最も苦労していますが、この部分に関するヒントがあれば、それも素晴らしいことです!

5
RussellZ

Wordでは、見出しにマルチレベルの番号付けを使用します(レベル1の見出しスタイルを変更してマルチレベル番号を適用すると、他のすべての見出しスタイルが番号付けを適応させます)。これで、すべての見出しに2、2.1、2.2.2のような番号が付けられ、その後に見出しテキストが続きます。

次に、見出しのみを含む目次を作成します。ダイアログの目次スタイルのリストの最初のスタイルを使用します。デフォルトでは、目次には最大4レベルの見出しのみが含まれるため、目次にさらにレベルを含める場合は、見出しのスタイルを変更する必要があります。

TOCをコピーし、[形式を選択して貼り付け]> [Unicodeテキスト]を使用してExcelに貼り付けます。貼り付けの結果は、見出しの番号、見出しのテキスト、ページ番号の3つの列になります。数値列を選択し、その形式を「テキスト」に設定します。そうしないと、以下は機能しません。

数式を使用して、数字の列のドットに従ってレベルを計算します。次に、数式を使用して、以下に示すように、それに応じてテキストを別の列にプルします。

次のスクリーンショットでは、レベルは次の式で計算されています(E2ではコピーダウン)

=LEN(A2)-LEN(SUBSTITUTE(A2,".",""))+1

F2の式は次のとおりです。

=IF($E2=F$1,$B2,"")

上下にコピーされます。

enter image description here

5
teylyn