コンピューターの多くのパフォーマンスメトリックを.csvに出力するスクリプトがあります。Excelは、標準偏差などの基本的な統計チェックを行います。
.csvファイルをExcelにインポートできることを理解していますが、私がしようとしているのは、そのデータをExcelモデルに動的に読み込み、毎回再インポートおよび再モデリングする必要はありません。
毎回再インポートせずに外部の.csvをセル/テーブルに参照させる方法はありますか?
コンピューターの多くのパフォーマンスメトリックを.csvに出力するスクリプトがあります。Excelは、標準偏差などの基本的な統計チェックを行います。
.csvファイルをExcelにインポートできることを理解していますが、私がしようとしているのは、そのデータをExcelモデルに動的に読み込み、毎回再インポートおよび再モデリングする必要はありません。
毎回再インポートせずに外部の.csvをセル/テーブルに参照させる方法はありますか?
回答:
最も簡単な方法は、データをAccessまたはSQL Expressにインポートしてから、Excelのデータ接続機能を使用することです。初期設定後、必要な作業は[すべて更新]をクリックするだけです。データを取得し、値を再計算します。
データ接続機能を使用してCSVを直接インポートできますが、データを取得してワークシートに追加する必要があります。セカンダリワークシートにインポートし、数式と計算を別のシートに残している限り、これは機能します。この方法を使用して[更新]をクリックすると、ファイル名の入力が求められ、最初に使用したのと同じ設定を使用して再インポートされます。また、この方法は、大規模なデータセットでは通常、低速であるか、使用できません。
@ andy-lynchの答えと同じことを達成するためのもう少し柔軟な方法であるPower Queryを使用することもできます。
プレビュー用のアニメーションGIFを参照してください。
Power QueryはMacOSでは使用できません。また、MacOS上でExcelの「テキストから」ファイルを開くダイアログはURLを受け入れません(少なくともバージョン15.33以降)。
このような接続を作成するには、このガイドで説明されているように、最初にWebクエリファイル(.iqy)を作成し、[データ->外部データの取得->保存されたクエリの実行]メニューコマンドでインポートする必要があります。
問題は、「。csvファイルでデータを参照するにはどうすればよいですか?
私の方法は、.csvファイルを切り取り、VBAとADOを含むマクロを使用してデータを受け取り、Excelのワークシートに直接配置することです。ODBC準拠のデータベースをソースにすることができます。
Excel 2010には、データ>>さまざまなデータソースからの外部データの取得があります。ただし、絶対制御が可能で、結果をマクロでフォーマットできるため、独自のコードを作成することを好みます。更新はボタンをクリックするだけで、それを使って何でもできます。
メトリックがどのデータベースから来ているのかを教えていただければ、詳細をお知らせできます。
PS Data >> Get External Data >> Existing Connections >> Browse for More >> New Source >> Other Advanced >> Nextでドライバーのリストを見て、データリンクプロパティリストに移動します。次に、使用するソースデータベースとドライバーを知る必要があります。詳細については、cliffbeachamのhotmailにメールでお問い合わせください。
File->From Text
接続プロパティをチェックして、csvファイルを直接インポートしますData->Connections
接続してテキストファイルをインポートするをご覧ください。
VBSマクロまたはスクリプトを使用した場合(Excel2010以降):
Sub Macro1()
'
' Macro1 Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;\\Path\To\CSV\Folder\CSV_Data.csv" _
, Destination:=Range("$A$1"))
.CommandType = 0
.Name = "Book1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
このマクロは、実際にはExcel 2013 Macro Recorderによって記録されました。
このマクロをトリガーするボタンを作成できます。