テキストを列に分割して選択した範囲からグラフを作成する

テキストを列に分割して選択した範囲からグラフを作成する

私がやろうとしているのは、まず膨大な量のデータを含む CSV ファイルを用意することです。

最初の列 A には、日付と時刻がスペースで区切られ、03/11/2017 12:55:34 のように表示されます。

2つの日付の間のセルを選択したい。03/11/2017 12:55:3403/11/2017 15:55:34次に、テキストを使用して選択した範囲の日付と時刻を列に分割し、最後に分離された時間と対応する値のグラフをプロットします。

コードは、テキストから列への変換を行わなくても正常に動作します。ただし、範囲を選択した後、テキストから列への変換を続行する方法がわかりません。

コードを添付しました。

 Function getData()


Dim findrow As Long, findrow2 As Long
Dim dataTable As Range

findrow = Range("A:B").Find("3/13/2017 15:49:57.108", Range("A1")).Row
findrow2 = Range("A:B").Find("3/13/2017 16:04:57.098", Range("A" & findrow)).Row
Set dataTable = Range("A" & findrow + 1 & ":B" & findrow2 - 1)
Set getData = dataTable
End Function

Sub SelectBetween()
Dim rng As Range
Dim cht As Object

'Your data range for the chart
 Set rng = getData()
 rng.Select

'Create a chart
 Set cht = ActiveSheet.Shapes.AddChart2

 'Give chart some data
  cht.Chart.SetSourceData Source:=rng

 'Determine the chart type
  cht.Chart.ChartType = xlLine

  cht.Chart.ChartTitle.Text = Cells(1, 1).Value



  cht.Chart.SetElement (msoElementLegendBottom)

  cht.Chart.SeriesCollection(1).Name = "=""CPU Processor Time"""

   cht.Chart.Axes(xlValue).MinimumScale = 0
   cht.Chart.Axes(xlValue).MaximumScale = 100


 End Sub

答え1

グラフ作成のニーズに適用できる非 VBA ソリューションです。データのコピーでテストすることをお勧めします。

  1. 日付/時刻情報をフィルタリングします。私のサンプル ファイルには、約 13,000 個の温度測定値が 387 個の値にフィルタリングされ、範囲に基づいてプロットされています。

フィルターの例

  1. 日付/時刻情報の形式を、時刻のみを表示するように変更します。セルを強調表示し、[ホーム] タブの数値形式ドロップダウンから [時刻] を選択します。

数値形式

  1. 結果の列とそれに関連するデータをグラフ化できます。

サンプルデータとグラフ

数値形式が時間のみを表示するように変更される前の日付/時刻データ:

変更前

関連情報