Làm cách nào tôi có thể tự động sắp xếp dữ liệu từ tệp văn bản trong bảng tính?


1

Tôi có một tệp văn bản như thế này:

raw data

và tôi muốn tổ chức vào Excel như thế này:

excel data

Tôi có thể làm điều này bằng tay cho hai mục nhập dữ liệu, nhưng tôi muốn có thể tự động hóa việc này cho quy mô lớn hơn. Những gì tôi đã thử cho đến nay là nhập dữ liệu vào Excel bằng tính năng tích hợp sẵn của nó, nhưng đó là nơi tôi bị mắc kẹt. Tôi đã cố gắng chuyển các cột thành các hàng, nhưng điều đó không tổ chức gọn gàng như tôi muốn. Tôi có cần phải thực hiện một số mã hóa hoặc có một chức năng tích hợp không? Nếu tôi cần mã hóa, ai đó có thể chỉ cho tôi đi đúng hướng không?

Cảm ơn vì đã dành thời gian cho tôi!


Bạn đã sử dụng macro? Chúng được viết bằng VBA "Visual Basic for Application" Bạn sẽ cần một vòng lặp for và ngắt dòng chữ "Khách hàng"
cybernard

Câu trả lời:


0

Tôi sẽ thử bổ trợ Power Query cho việc này. Nó có các lệnh mạnh mẽ để thao tác dữ liệu. Có các chức năng bên dưới, nhưng bạn có thể đạt được rất nhiều chỉ bằng cách nhấp vào các nút trong cửa sổ Power Query. Làm việc trực quan trong Power Query thường dễ dàng hơn nhiều so với mã hóa trong VBA.

Tôi đã trải qua thử thách đặc biệt này và khiến nó hoạt động. Bạn có thể tải xuống và sử dụng tệp demo của tôi từ OneDrive của tôi:

http://1drv.ms/1AzPAZp

Đó là tệp: Bản thử nghiệm Power Query - sắp xếp lại các hàng thành cột.xlsx

Như được mô tả trên trang ReadMe, tôi chỉ phải viết một chức năng đơn giản - phần còn lại chỉ là nhấp chuột xung quanh UI. Power Query thật tuyệt!

Để sử dụng nó với các tệp văn bản của riêng bạn, chỉ cần Chỉnh sửa Bước đầu tiên trong Truy vấn để trỏ đến tệp của bạn. BTW thậm chí bạn có thể nhận Power Query để lặp qua các tệp trong một thư mục nếu được yêu cầu.


Viết lại câu trả lời của tôi sau khi tìm thấy một cách dễ dàng bằng Power Query.
Mike Honey

Điều này thật tuyệt vời và chính xác những gì tôi cần! Sau khi loay hoay với nó thêm một chút nữa, tôi đã xoay sở để làm việc đó cho nhu cầu của mình. Nó rất trực quan! Cảm ơn đã giới thiệu cho tôi công cụ mạnh mẽ này! Nếu có một nơi mà bạn giới thiệu người mới bắt đầu làm chủ Power Query, vui lòng cho tôi biết! Nếu không, cảm ơn một lần nữa!
user2738229

Bạn được chào đón - đó là một bài tập rèn luyện / trí não tốt cho tôi. Không có nhiều khóa đào tạo PQ xung quanh - có lẽ cách tốt nhất để bắt đầu là các bản ghi phiên từ các hội nghị gần đây của Microsoft, ví dụ: channel9.msdn.com/Events/TechEd/NorthAmerica/
Mike Honey

0

Powershell một cách bẩn thỉu.

$xlsFile="c:\temp\your.xlsx"
$excel = new-object -comobject excel.application
$excel.displayAlerts = $false
$wbs=$excel.workbooks.open($xlsFile)
$ws=$wbs.sheets.item(1)
$ws.cells.item(1,1) = "Customer"
$ws.cells.item(1,2) = "Apples"
$ws.cells.item(1,3) = "Bananas"
$ws.cells.item(1,4) = "Oranges"
$row = 1
$reader = [System.IO.File]::OpenText("c:\temp\your.txt")
try {
    while ($true) {
        $line = $reader.ReadLine()
        if ($line -eq $null) { break }
        if ($line.length -lt 3) {continue}
        switch ($line.substring(0,3))
            {
                "Cus" {
                    $val="'"+$line.split("#:")[1]
                    $row++
                    $ws.cells.item($row,1) = $val
                }
                "App" {
                    $val=$line.split(" ")[1]
                    $ws.cells.item($row,2) = $val
                }
                "Ban" {
                    $val=$line.split(" ")[1]
                    $ws.cells.item($row,3) = $val              
                }
                "Ora" {
                    $val=$line.split(" ")[1]
                    $ws.cells.item($row,4) = $val
                }
            }
    }
}
finally {
    $reader.Close()
}
$wbs.saveas($xlsFile)
$wbs.close()
$excel.quit()
$ws = $null
$wbs = $null
$excel = $null
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.