Excel verilerini harici (ve dinamik) bir .csv dosyasından alabilir misiniz?


14

Bir bilgisayar için bir dizi performans metriğini bir .csv biçiminde çıkaran bir komut dosyam var. Excel, standart sapma vb. İçin temel bir istatistik kontrolü yapar.

.Csv dosyalarını Excel'e aktarabileceğinizi anlıyorum, ancak yapmaya çalıştığım şey her defasında yeniden içe aktarmak ve yeniden modellemek zorunda kalmadan bu verileri Excel modelime dinamik olarak okumak.

Her seferinde yeniden içe aktarmadan hücre / tabloya harici bir .csv başvurusu yapmanın bir yolu var mı?


Dosya güncellendiğinde, dosyaya ekleniyor veya üzerine yazılıyor mu?
Benjamin Anderson

Tamamen üzerine yazılmıştır. Ama her iki şekilde de çalıştırabilirim.
editör

Yanıtlar:


5

Bunu yapmanın en kolay yolu, verileri Access'e veya SQL Express'e almak ve ardından Excel'deki Veri Bağlantısı özelliklerini ve işlevlerini kullanmaktır. İlk kurulumdan sonra, yapmanız gereken tek şey Tümünü Yenile'yi tıklamaktır ve veriyi çeker ve değerleri yeniden hesaplar.

CSV'yi Veri bağlantısı özelliğiyle doğrudan içe aktarabilirsiniz, ancak verileri içeri çekmek ve bir Çalışma Sayfasına eklemek isteyecektir. Bu, ikincil bir Çalışma Sayfasına aktardığınız ve formüllerinizi ve hesaplamalarınızı başka bir sayfada bıraktığınız sürece çalışır. Bu yöntemi kullanarak Yenile'yi tıklattığınızda, dosya adını soracak ve ilk olarak kullanılan ayarlarla yeniden içe aktarılacaktır. Bu yöntem ayrıca büyük veri kümeleriyle genellikle daha yavaş veya kullanılamaz.


2
Veri Bağlantısı özelliğini kullanarak dosya adı istemini devre dışı bırakabilirsiniz (sihirbazın sonunda bir onay kutusu vardır). Bu noktada, her X dakikada bir otomatik olarak yenilenecek şekilde de ayarlayabilirsiniz. Küçük veri kümeleri için iyi çalışır.
Martin McNulty

4

pencereler

Ayrıca , @ andy-lynch'ın cevabındakine ulaşmak için biraz daha esnek bir yol olan Power Query'yi de kullanabilirsiniz .

  1. Buradan alın
  2. Yükle
  3. Yeni "Güç Sorgusu" şerit sekmesine gidin.
  4. "Dosyadan" veya "Web'den" seçeneğini tıklayın ve ekrandaki talimatları izleyin.

Önizleme için aşağıdaki hareketli gif'e bakın:

resim açıklamasını buraya girin

Mac os işletim sistemi

Power Query, MacOS için mevcut değildir; MacOS'taki Excel "Metinden" açık dosya iletişim kutusu URL kabul etmez (en azından sürüm 15.33).

Böyle bir bağlantı oluşturmak için önce bu kılavuzda açıklandığı gibi bir web sorgu dosyası (.iqy) oluşturmak ve sonra "Veri -> Dış veri almak -> Kayıtlı sorguyu çalıştır" menü komutuyla içe aktarmak gerekir.


Kabul ediyorum - Excel 2016 + 'da bunun varsayılan olduğunu anladım ( Get and Transform olarak )
Andy Lynch

2

Soru "Bir .csv dosyasındaki verilere nasıl başvurabilirim?

Benim yolum .csv dosyasını kesip VBA ve ADO içeren bir makro kullanmak ve verileri alan ve doğrudan Excel'deki bir çalışma sayfasına yerleştirmek olurdu. Herhangi bir ODBC uyumlu veritabanı kaynağınız olabilir.

Excel 2010'da Veriler >> Dış Veri Al - çeşitli veri kaynaklarından. Ancak, mutlak bir kontrole sahip olduğum ve sonuçları makroda biçimlendirebildiğim için kendi kodumu yazmayı tercih ediyorum. Yenile, bir düğmeyi tıklamaktır ve onunla her şeyi yapabilirsiniz.

Metriklerin hangi veritabanından geldiğini söylerseniz bazı özellikleri size bildirebilirim.

PS Verilerdeki sürücüler listesine bakın >> Dış Veri Al >> Mevcut Bağlantılar >> Daha Fazla Ara >> Yeni Kaynak >> Diğer Gelişmiş >> Sonra sizi Veri Bağlantısı Özellikleri listesine götürür. Daha sonra hangi kaynak veritabanını ve hangi sürücüyü kullanacağınızı bilmelisiniz. Daha fazla bilgi için hotmail'deki cliffbeacham'a e-posta gönderebilirsiniz.


2

Daha basit bir yol ( bu yazı sayesinde ), daha önce indirdiğiniz (yani Data > Import Text File) bir metin dosyası için yaptığınız gibi verileri içe aktarmaktır , ancak bir dosya adı girmek yerine CSV dosyasının URL'sini yapıştırın.


Bu kullanışlı. Uzak dosya değişirse, dinamik olarak güncellenmediğini düşünüyorum.
editör

Bu doğrudur - açık / her <x> dakikada bir yenileme olağan seçenekleri hala geçerlidir.
Andy Lynch


0

VBS makro veya komut dosyası ile (Excel2010 ve üstü) şöyle görünecektir:

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

Bu Makro aslında Excel 2013 Makro Kaydedici tarafından kaydedildi. Bu makroyu tetikleyen bir düğme oluşturabilirsiniz.MS Excel 2013'ten Araç Çubuğundaki Makro Kaydedici

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.