スプレッドシートのテキストファイルからデータを自動的に整理するにはどうすればよいですか?


1

次のようなテキストファイルがあります。

生データ

そして、私はこのようにExcelに整理したいと思います:

エクセルデータ

2つのデータエントリに対して手動でこれを行うこともできますが、これを大規模に自動化できるようにしたいと思います。これまでに試したことは、組み込み機能を使用してExcelにデータを入力することですが、それが私が行き詰まっているところです。列を行に転置しようとしましたが、希望どおりに整理されていません。コーディングを行う必要がありますか、それとも組み込み関数がありますか?コーディングが必要な場合、誰かが私を正しい方向に向けることができますか?

御時間ありがとうございます!


マクロを使用しましたか?これらはVBA「Visual Basic for Applications」で記述されています。「顧客」というテキストでforループとブレークが必要になります
-cybernard

回答:


0

このためにPower Queryアドインを試してみます。データを操作するための強力なコマンドがあります。下に機能がありますが、[パワークエリ]ウィンドウのボタンをクリックするだけで多くのことが実現できます。通常、Power Queryで視覚的に作業することは、VBAでコーディングするよりもはるかに簡単です。

この特定の課題に取り組み、それを機能させました。OneDriveからデモファイルをダウンロードして使用できます。

http://1drv.ms/1AzPAZp

ファイル:Power Queryデモ-列をcolumns.xlsxに再編成する

ReadMeシートで説明したように、私は1つの単純な関数を記述するだけで済みました。残りはUIをクリックするだけでした。Power Queryは素晴らしいです!

独自のテキストファイルに対して使用するには、クエリの最初のステップを編集してファイルを指すようにします。ところで、必要に応じて、フォルダ内のファイルをループするPower Queryを取得することもできます。


Power Queryを使用して簡単な方法を見つけた後、私の答えを書き直しました。
マイクハニー

これは素晴らしく、まさに私が必要としていたものです!それをいじくり回した後、私は自分のニーズのためになんとかそれを動作させることができました。とても直感的でした!この強力なツールを紹介してくれてありがとう!Power Queryをマスターするために初心者に勧める場所があれば、教えてください!それ以外の場合は、再度ありがとう!
user2738229

どういたしまして-それは私にとって良いトレーニング/脳の運動でした。周りのPQの訓練がたくさんありません-おそらく開始するための最良の方法は、最近のMicrosoft会議などからのセッション記録されているchannel9.msdn.com/Events/TechEd/NorthAmerica/...
マイク・ハニー

0

汚い方法でPowershell。

$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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.