Bisakah Anda menarik data Excel dari file .csv eksternal (dan dinamis)?


14

Saya punya skrip yang menampilkan sejumlah metrik kinerja untuk komputer menjadi .csv. Excel melakukan pemeriksaan dasar statistik untuk standar deviasi, dll.

Saya sadar Anda dapat mengimpor file .csv ke Excel, tetapi yang saya coba lakukan adalah membaca data itu secara dinamis ke dalam model Excel saya tanpa harus mengimpor ulang dan memodel ulang setiap kali.

Apakah ada cara untuk memiliki referensi sel / tabel .csv eksternal tanpa mengimpor ulang setiap kali?


Saat file diperbarui, apakah ditambahkan, atau ditimpa?
Benjamin Anderson

Ditimpa sepenuhnya. Tapi saya rasa saya bisa memodifikasinya agar bisa bekerja dengan baik.
Editor

Jawaban:


5

Cara termudah untuk melakukannya adalah mengimpor Data ke Access atau SQL Express, dan kemudian menggunakan fitur dan fungsi Koneksi Data di Excel. Setelah pengaturan awal, yang harus Anda lakukan adalah klik Refresh All dan itu akan menarik data dan menghitung kembali nilainya.

Anda dapat mengimpor CSV secara langsung dengan fitur koneksi Data, tetapi ingin menarik data dan menambahkannya ke Lembar Kerja. Ini akan berfungsi, selama Anda mengimpornya ke Lembar Kerja sekunder dan meninggalkan formula dan perhitungan Anda di lembar lain. Ketika Anda mengklik Refresh menggunakan metode ini, ia akan meminta nama file, dan kemudian mengimpornya kembali menggunakan pengaturan yang sama seperti yang digunakan sebelumnya. Metode ini juga biasanya lebih lambat, atau tidak dapat digunakan, dengan dataset besar.


2
Menggunakan fitur Koneksi Data, Anda dapat menonaktifkan prompt nama file (ada kotak centang di akhir panduan). Pada titik itu Anda juga dapat mengaturnya untuk menyegarkan otomatis setiap X menit. Bekerja dengan baik untuk dataset kecil.
Martin McNulty

4

Windows

Anda juga dapat menggunakan Power Query yang merupakan cara yang sedikit lebih fleksibel untuk mencapai hal yang sama seperti pada jawaban @ andy-lynch .

  1. Dapatkan di sini
  2. Pasang itu
  3. Buka tab pita "Power Query" yang baru.
  4. Baik klik "Dari File", atau "Dari Web" dan ikuti instruksi di layar.

Lihat di bawah ini animasi gif untuk pratinjau:

masukkan deskripsi gambar di sini

MacOS

Power Query tidak tersedia untuk MacOS; dialog file terbuka "Dari Teks" Excel di MacOS tidak menerima URL (setidaknya pada versi 15.33).

Untuk membuat koneksi seperti itu, pertama-tama harus membuat file permintaan web (.iqy), seperti yang dijelaskan dalam panduan ini , dan kemudian mengimpornya dengan perintah menu "Data -> Get data eksternal -> Run query query".


Saya setuju - dalam Excel 2016+ Saya mengerti ini sekarang default (seperti Get and Transform )
Andy Lynch

2

Pertanyaannya adalah "Bagaimana cara referensi data dalam file .csv?

Cara saya adalah dengan memotong file .csv dan menggunakan makro yang berisi VBA dan ADO yang menerima data dan meletakkannya langsung ke lembar kerja di Excel. Basis data yang sesuai dengan ODBC dapat menjadi sumber Anda.

Excel 2010 memiliki Data >> Dapatkan Data Eksternal - dari berbagai sumber data. Namun, saya lebih suka menulis kode sendiri karena saya memiliki kontrol absolut dan dapat memformat hasil di makro. Refresh ada di klik tombol dan Anda bisa melakukan apa saja dengan itu.

Saya dapat memberi tahu Anda secara spesifik jika Anda memberi tahu saya dari basis data apa metrik tersebut berasal.

PS Lihatlah daftar driver di Data >> Dapatkan Data Eksternal >> Koneksi Yang Ada >> Jelajahi Lebih Banyak >> Sumber Baru >> Lanjutan Lainnya >> Selanjutnya yang membawa Anda ke daftar Properties Data Link. Anda kemudian harus tahu database sumber apa dan driver apa yang digunakan. Anda dapat mengirim email kepada saya di cliffbeacham di hotmail dengan rincian lebih lanjut.


2

Cara yang lebih sederhana (terima kasih untuk posting ini ) adalah dengan hanya mengimpor data seperti yang Anda lakukan untuk file teks yang sudah Anda unduh (yaitu Data > Import Text File), tetapi alih-alih memasukkan nama file, tempelkan URL file CSV sebagai gantinya.


Ini bermanfaat. Jika file jarak jauh berubah, saya kira itu tidak memperbarui secara dinamis.
Editor

Itu benar - meskipun opsi biasa untuk menyegarkan saat terbuka / setiap <x> menit masih berlaku.
Andy Lynch


0

Dengan VBS makro atau skrip akan terlihat seperti (Excel2010 dan yang lebih baru):

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

Makro ini sebenarnya direkam oleh Perekam Makro Excel 2013. Anda bisa membuat tombol yang memicu makro ini.Perekam Makro di Bilah Alat dari MS Excel 2013

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.