คุณสามารถดึงข้อมูล Excel จากไฟล์. csv ภายนอก (และไดนามิก) ได้หรือไม่


14

ฉันมีสคริปต์ที่แสดงผลการวัดประสิทธิภาพสำหรับคอมพิวเตอร์เป็น. csv Excel ทำการตรวจสอบสถิติเบื้องต้นสำหรับส่วนเบี่ยงเบนมาตรฐาน ฯลฯ

ฉันรู้ว่าคุณสามารถนำเข้าไฟล์. csv ไปยัง Excel ได้ แต่สิ่งที่ฉันพยายามทำคืออ่านข้อมูลนั้นในรูปแบบ Excel ของฉันแบบไดนามิกโดยไม่ต้องนำเข้าและสร้างโมเดลใหม่ในแต่ละครั้ง

มีวิธีที่จะมีเซลล์ / ตารางอ้างอิง. csv ภายนอกโดยไม่ต้องนำเข้าใหม่ทุกครั้งหรือไม่


เมื่อไฟล์ถูกอัพเดตไฟล์จะถูกต่อท้ายหรือเขียนทับหรือไม่?
Benjamin Anderson

เขียนทับอย่างสมบูรณ์ แต่ฉันคิดว่าฉันสามารถปรับเปลี่ยนให้ใช้งานได้ทั้งสองวิธี
บรรณาธิการ

คำตอบ:


5

วิธีที่ง่ายที่สุดในการดำเนินการคือการนำเข้าข้อมูลไปยัง Access หรือ SQL Express จากนั้นใช้คุณลักษณะการเชื่อมต่อข้อมูลและฟังก์ชั่นใน Excel หลังจากตั้งค่าเริ่มต้นสิ่งที่คุณต้องทำคือคลิกรีเฟรชทั้งหมดและจะดึงข้อมูลและคำนวณค่าใหม่

คุณสามารถนำเข้า CSV ด้วยคุณสมบัติการเชื่อมต่อข้อมูลโดยตรง แต่จะต้องการดึงข้อมูลและเพิ่มลงในแผ่นงาน สิ่งนี้จะได้ผลตราบใดที่คุณนำเข้าไปยังแผ่นงานรองและปล่อยให้สูตรและการคำนวณของคุณอยู่ในแผ่นงานอื่น เมื่อคุณคลิกรีเฟรชโดยใช้วิธีนี้มันจะถามชื่อไฟล์จากนั้นนำเข้าอีกครั้งโดยใช้การตั้งค่าเดียวกับที่ใช้ครั้งแรก วิธีนี้มักจะช้ากว่าหรือไม่สามารถใช้ได้กับชุดข้อมูลขนาดใหญ่


2
การใช้คุณสมบัติการเชื่อมต่อข้อมูลคุณสามารถปิดใช้งานพรอมต์ชื่อไฟล์ (มีช่องทำเครื่องหมายที่ท้ายตัวช่วยสร้าง) ณ จุดนี้คุณยังสามารถตั้งค่าให้รีเฟรชอัตโนมัติทุก ๆ X นาที ทำงานได้ดีสำหรับชุดข้อมูลขนาดเล็ก
Martin McNulty

4

ของ windows

นอกจากนี้คุณยังสามารถใช้พลังงานแบบสอบถามซึ่งเป็นบิตความยืดหยุ่นมากขึ้นวิธีการที่จะประสบความสำเร็จเช่นเดียวกับใน@ คำตอบ

  1. รับที่นี่
  2. ติดตั้ง
  3. ไปที่แท็บ Ribbon "Power Query" ใหม่
  4. คลิก "จากไฟล์" หรือ "จากเว็บ" และทำตามคำแนะนำบนหน้าจอ

ดูภาพเคลื่อนไหว gif ด้านล่างเพื่อดูตัวอย่าง:

ป้อนคำอธิบายรูปภาพที่นี่

MacOS

Power Query ไม่สามารถใช้งานได้กับ MacOS ไม่มีกล่องโต้ตอบเปิดไฟล์ "จากข้อความ" ของ Excel ใน MacOS ที่ยอมรับ URL (อย่างน้อยรุ่น 15.33)

ในการสร้างการเชื่อมต่อเราจะต้องสร้างไฟล์แบบสอบถามเว็บ (.iqy) ก่อนตามที่อธิบายไว้ในคู่มือนี้แล้วนำเข้ามันด้วยคำสั่งเมนู "ข้อมูล -> รับข้อมูลภายนอก -> เรียกใช้แบบสอบถามที่บันทึกไว้"


ฉันเห็นด้วย - ใน Excel 2016+ ฉันเข้าใจว่าตอนนี้เป็นค่าเริ่มต้น (ตามที่รับและเปลี่ยน )
Andy Lynch

2

คำถามคือ "ฉันจะอ้างอิงข้อมูลในไฟล์. csv ได้อย่างไร?

ทางของฉันคือการตัดไฟล์. csv ออกและใช้มาโครที่มี VBA และ ADO ที่รับข้อมูลและวางลงในแผ่นงานใน Excel โดยตรง ฐานข้อมูลที่สอดคล้องกับ ODBC ใด ๆ สามารถเป็นแหล่งที่มาของคุณ

Excel 2010 มีข้อมูล >> รับข้อมูลภายนอก - จากแหล่งข้อมูลต่าง ๆ อย่างไรก็ตามฉันชอบที่จะเขียนรหัสของตัวเองเพราะฉันมีการควบคุมที่สมบูรณ์และสามารถจัดรูปแบบผลลัพธ์ในแมโคร รีเฟรชอยู่ที่การคลิกปุ่มและคุณสามารถทำอะไรกับมัน

ฉันสามารถแจ้งให้คุณทราบรายละเอียดบางอย่างถ้าคุณบอกฉันว่าฐานข้อมูลมาจากไหน

PS ดูรายการไดรเวอร์ในข้อมูล >> รับข้อมูลภายนอก >> การเชื่อมต่อที่มีอยู่ >> เรียกดูเพิ่มเติม >> แหล่งใหม่ >> ขั้นสูงอื่น ๆ >> ถัดไปซึ่งจะนำคุณไปยังรายการคุณสมบัติ Data Link จากนั้นคุณต้องทราบว่าฐานข้อมูลต้นทางและไดรเวอร์ใดที่จะใช้ คุณสามารถส่งอีเมลฉันที่ cliffbeacham ที่ hotmail พร้อมรายละเอียดเพิ่มเติม


2

วิธีที่ง่ายกว่า (ขอบคุณโพสต์นี้ ) เพียงนำเข้าข้อมูลตามที่คุณต้องการสำหรับไฟล์ข้อความที่คุณดาวน์โหลดมาแล้ว (เช่นData > Import Text File) แต่แทนที่จะป้อนชื่อไฟล์ให้วาง URL ของไฟล์ CSV แทน


สิ่งนี้มีประโยชน์ หากไฟล์ระยะไกลเปลี่ยนไปฉันคิดว่ามันไม่ได้อัปเดตแบบไดนามิก
บรรณาธิการ

นั่นเป็นความจริง - แม้ว่าตัวเลือกตามปกติในการรีเฟรชเมื่อเปิด / ทุก ๆ <x> นาทียังคงมีผลอยู่
Andy Lynch


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 คุณสามารถสร้างปุ่มที่เรียกใช้แมโครนี้ตัวบันทึกแมโครใน Toolbar จาก MS Excel 2013

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.