外部(および動的).csvファイルからExcelデータをプルできますか?


14

コンピューターの多くのパフォーマンスメトリックを.csvに出力するスクリプトがあります。Excelは、標準偏差などの基本的な統計チェックを行います。

.csvファイルをExcelにインポートできることを理解していますが、私がしようとしているのは、そのデータをExcelモデルに動的に読み込み、毎回再インポートおよび再モデリングする必要はありません。

毎回再インポートせずに外部の.csvをセル/テーブルに参照させる方法はありますか?


ファイルが更新されたとき、追加または上書きされていますか?
ベンジャミンアンダーソン

完全に上書きされました。しかし、どちらの方法でも機能するように変更できると思います。
編集者

回答:


5

最も簡単な方法は、データをAccessまたはSQL Expressにインポートしてから、Excelのデータ接続機能を使用することです。初期設定後、必要な作業は[すべて更新]をクリックするだけです。データを取得し、値を再計算します。

データ接続機能を使用してCSVを直接インポートできますが、データを取得してワークシートに追加する必要があります。セカンダリワークシートにインポートし、数式と計算を別のシートに残している限り、これは機能します。この方法を使用して[更新]をクリックすると、ファイル名の入力が求められ、最初に使用したのと同じ設定を使用して再インポートされます。また、この方法は、大規模なデータセットでは通常、低速であるか、使用できません。


2
データ接続機能を使用すると、ファイル名のプロンプトを無効にできます(ウィザードの最後にチェックボックスがあります)。その時点で、X分ごとに自動更新するように設定することもできます。小さなデータセットに適しています。
マーティンマクナルティ

4

ウィンドウズ

@ andy-lynchの答えと同じことを達成するためのもう少し柔軟な方法であるPower Queryを使用することもできます

  1. ここで入手
  2. インストールする
  3. 新しい[Power Query]リボンタブに移動します。
  4. [ファイルから]または[Webから]をクリックして、画面の指示に従います。

プレビュー用のアニメーションGIFを参照してください。

ここに画像の説明を入力してください

マックOS

Power QueryはMacOSでは使用できません。また、MacOS上でExcelの「テキストから」ファイルを開くダイアログはURLを受け入れません(少なくともバージョン15.33以降)。

このような接続を作成するには、このガイド説明されているように、最初にWebクエリファイル(.iqy)を作成し、[データ->外部データの取得->保存されたクエリの実行]メニューコマンドでインポートする必要があります。


私は同意-エクセル2016+で、私はこれが今(のようにデフォルトであることを理解取得および変換
アンディ・リンチ

2

問題は、「。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にメールでお問い合わせください。


2

この投稿のおかげで)より簡単な方法は、既にダウンロードしたテキストファイル(つまりData > Import Text File)の場合と同じようにデータをインポートすることですが、ファイル名を入力する代わりに、CSVファイルのURLを貼り付けます。


これは便利です。リモートファイルが変更された場合、それは動的に更新されていないと思います。
編集者

それは本当です-ただし、開いたときに<x>分ごとに更新する通常のオプションが適用されます。
アンディリンチ


0

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によって記録されました。 このマクロをトリガーするボタンを作成できます。MS Excel 2013のツールバーのマクロレコーダー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.