web-dev-qa-db-ja.com

リンク解除されたExcelプロットからデータを抽出する

Excelプロットが含まれているWordファイルがあります。残念ながら、元のExcelプロットを失い、Wordファイルは「リンク解除」されました。

プロットの失われたデータを取得する方法はありますか?プロットをExcelにコピーし直すだけではうまくいかないようですが、プロット上のドットにカーソルを合わせると値が表示されるため、データがまだどこかに残っていることがわかります。

7
danny

PowerPoint 2010プレゼンテーションでも同じことをしなければなりませんでした。長期的な解決策として、VBAスクリプトは良い方法だと思います。しかし、何らかの理由で私の場合にはそれを機能させることができず、データを一度取得するだけで済みました。 (構造的な解決策として、最初の場所で元のデータを失うことはおそらくないはずです。)これを行うことができます:

  1. PPTファイルの名前を変更して、.Zip拡張子
  2. 結果のアーカイブをフォルダーに解凍します。
  3. フォルダーにはppt/charts/サブフォルダ。
  4. 開いた chart1.xml with Excel XMLテーブルとして。 (ファイルを開くだけで、Excelがそれを開く方法を尋ねてきます。)
  5. ドキュメントには多数の列があり、その多くは各行に同じ値を持っています。 1つの列は、グラフのx値になります。値をプレゼンテーションに表示されているものと比較することで見つけることができます。 y値は別の列にあり、私の場合はx値よりもかなり下にあります(したがって、yデータ列の最初の行は空です)。
  6. 新しいドキュメントでは、x値とy値を隣同士にコピーして貼り付けるのが最も簡単であることがわかりました。
  7. データを確認するには、貼り付けたデータを選択し、[挿入]> [グラフ]> [散布図]> [滑らかな線を使用]を実行します。最初の列はx値、2番目のy値でなければなりません。
  8. 元のファイルの曲線を1つだけ使用して、新しいプレゼンテーションを作成する方が簡単だと思いました。ただし、グラフが多数ある場合は、おそらくchart2.xmlなど。解凍したフォルダにあります。グラフに複数の行が含まれている場合は、XMLで追加のデータを見つける必要があります。
6
texnic

データを抽出するには、VBAを使用する必要があります。可能なVBAソリューションの1つを次に示します: http://peltiertech.com/WordPress/extract-chart-data/ 。このコードが含まれています:

Sub ExtractChartData()
   Dim iSrs As Long
   Dim cht As Chart
   Dim srs As Series
   Dim ws As Worksheet

   If ActiveChart Is Nothing Then Exit Sub

   Set cht = ActiveChart
   Set ws = Worksheets.Add
   For iSrs = 1 To cht.SeriesCollection.Count
     Set srs = cht.SeriesCollection(iSrs)
     On Error Resume Next
     ws.Cells(1, 2 * iSrs).Value = srs.Name
     ws.Cells(2, 2 * iSrs - 1).Resize(srs.Points.Count).Value = _
         WorksheetFunction.Transpose(srs.XValues)
     ws.Cells(2, 2 * iSrs).Resize(srs.Points.Count).Value = _
         WorksheetFunction.Transpose(srs.Values)
   Next
 End Sub

以下は、Microsoftから直接送信される別の可能な解決策です。 http://support.Microsoft.com/kb/30064 (VBAも含まれます)

2
s_a

大量のデータがない場合、かなりダウンしてダーティーなソリューションがあります。

系列を選択し、グラフツールのレイアウトタブを選択して、データラベルを追加すると、値を読み取って必要な場所に入力できます。

0
Rob