Bạn có thể kéo dữ liệu Excel từ tệp .csv bên ngoài (và động) không?


14

Tôi đã có một tập lệnh đưa ra một số số liệu hiệu suất cho máy tính thành .csv. Excel thực hiện kiểm tra số liệu thống kê cơ bản cho độ lệch chuẩn, v.v.

Tôi nhận ra rằng bạn có thể nhập tệp .csv vào Excel, nhưng những gì tôi đang cố gắng là đọc dữ liệu đó một cách linh hoạt vào mô hình Excel của tôi mà không phải nhập lại và mô hình lại mỗi lần.

Có cách nào để có một ô / bảng tham chiếu một .csv bên ngoài mà không cần nhập lại mỗi lần không?


Khi tệp được cập nhật, nó có được thêm vào hoặc ghi đè không?
Benjamin Anderson

Hoàn toàn ghi đè. Nhưng tôi đoán tôi có thể sửa đổi nó để làm việc theo cách nào.
biên tập viên

Câu trả lời:


5

Cách dễ nhất để thực hiện là nhập Dữ liệu vào Access hoặc SQL Express, sau đó sử dụng các tính năng và chức năng Kết nối dữ liệu trong Excel. Sau khi thiết lập ban đầu, tất cả những gì bạn cần làm là nhấp vào Làm mới Tất cả và nó sẽ kéo dữ liệu và tính toán lại các giá trị.

Bạn có thể nhập trực tiếp CSV bằng tính năng kết nối Dữ liệu, nhưng nó sẽ muốn kéo dữ liệu vào và thêm nó vào Bảng tính. Điều này sẽ hoạt động, miễn là bạn nhập nó vào Bảng tính phụ và để lại các công thức và tính toán của bạn trên một trang tính khác. Khi bạn bấm Làm mới bằng phương pháp này, nó sẽ hỏi tên tệp và sau đó nhập lại bằng cách sử dụng cùng các cài đặt như được sử dụng ban đầu. Phương pháp này cũng thường chậm hơn hoặc không sử dụng được với các bộ dữ liệu lớn.


2
Sử dụng tính năng Kết nối dữ liệu, bạn có thể tắt lời nhắc tên tệp (có một hộp kiểm ở cuối trình hướng dẫn). Tại thời điểm đó, bạn cũng có thể đặt nó tự động làm mới sau mỗi X phút. Hoạt động tốt cho các bộ dữ liệu nhỏ.
Martin McN Khoa

4

các cửa sổ

Bạn cũng có thể sử dụng Power Query , một cách linh hoạt hơn một chút để đạt được tương tự như trong câu trả lời của @ andy-lynch .

  1. Lấy nó ở đây
  2. Cài đặt nó
  3. Chuyển đến tab ruy băng "Power Query" mới.
  4. Nhấp vào "Từ tệp" hoặc "Từ web" và làm theo hướng dẫn trên màn hình.

Xem bên dưới gif hoạt hình để xem trước:

nhập mô tả hình ảnh ở đây

Hệ điều hành Mac

Power Query không khả dụng cho MacOS; cũng không phải hộp thoại mở tệp "Từ văn bản" trên MacOS chấp nhận URL (ít nhất là tại phiên bản 15.33).

Để tạo kết nối như vậy, trước tiên người ta phải xây dựng tệp truy vấn web (.iqy), như được giải thích trong hướng dẫn này , sau đó nhập nó bằng lệnh "Dữ liệu -> Nhận dữ liệu ngoài -> Chạy truy vấn đã lưu".


Tôi đồng ý - trong Excel 2016+ Tôi hiểu rằng đây là mặc định (dưới dạng Nhận và Chuyển đổi )
Andy Lynch

2

Câu hỏi là "Làm cách nào để tôi tham chiếu dữ liệu trong tệp .csv?

Cách của tôi là cắt bỏ tệp .csv và sử dụng Macro chứa VBA và ADO nhận dữ liệu và đặt trực tiếp vào bảng tính trong Excel. Bất kỳ cơ sở dữ liệu tuân thủ ODBC có thể là nguồn của bạn.

Excel 2010 có Dữ liệu >> Nhận Dữ liệu Ngoài - từ nhiều nguồn dữ liệu khác nhau. Tuy nhiên, tôi thích viết mã của riêng mình vì tôi có quyền kiểm soát tuyệt đối và có thể định dạng kết quả trong macro. Làm mới là tại một nút bấm và bạn có thể làm bất cứ điều gì với nó.

Tôi có thể cho bạn biết một số chi tiết cụ thể nếu bạn cho tôi biết cơ sở dữ liệu đến từ cơ sở dữ liệu nào.

PS Xem danh sách các trình điều khiển trong Dữ liệu >> Nhận Dữ liệu Ngoài >> Kết nối Hiện tại >> Duyệt tìm thêm >> Nguồn mới >> Nâng cao khác >> Tiếp theo dẫn bạn đến danh sách Thuộc tính Liên kết Dữ liệu. Sau đó, bạn phải biết cơ sở dữ liệu nguồn nào và sử dụng trình điều khiển nào. Bạn có thể gửi email cho tôi tại cliffbeacham tại hotmail với nhiều chi tiết hơn.


2

Một cách đơn giản hơn (nhờ bài đăng này ) là chỉ nhập dữ liệu như bạn muốn cho một tệp văn bản bạn đã tải xuống (ví dụ Data > Import Text File), nhưng thay vì nhập tên tệp, thay vào đó hãy dán URL của tệp CSV.


Điều này rất hữu ích. Nếu tập tin từ xa thay đổi, tôi tưởng tượng nó không tự động cập nhật.
biên tập viên

Điều đó là đúng - mặc dù các tùy chọn thông thường để làm mới khi mở / cứ sau <x> phút vẫn được áp dụng.
Andy Lynch


0

Với macro hoặc tập lệnh VBS sẽ như thế nào (Excel2010 trở lên):

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

Macro này thực sự được ghi lại bởi Trình ghi Macro Excel 2013. Bạn có thể tạo một nút kích hoạt macro này.Trình ghi Macro trong Thanh công cụ từ MS Excel 2013

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.