複数行にわたるデータを1行に変換する方法が知りたいです。

はじめまして。
現在データスクレイピングでデータを取得しようとしているのですが、1つのデータが複数行にわたっており、各行繰り返しでの処理が行うことができずにいます。
最終的に2行目から4行目に記述した項目名にし、1行にまとめたいと考えています。
UiPathの素人のためわかりづらい点などあったら申し訳ありません。
ご指導いただければ幸いです。よろしくお願いいたします。

こんにちは

可能であれば
サンプルとなるエクセルシート(ファイルとして)

期待する出力(具体的なアウトプットのイメージ)
を共有可能でしょうか?

もとのデータテーブルを3行ずつ読んで1行のRowを作ってまとめ先のデータテーブルに行追加すればいいだけでは?そういうことではないのでしょうか?

Yoichiさん
時間がかかってしまい申し訳ございません。
新規ユーザーのためファイルアップロードが制限されているためスプレッドシートを共有させていただきます。
元データ、スクレイピング時、出力イメージのサンプルをそれぞれシートにまとめています。

minaiさん
データスクレイピングに3行ずつ読んでくれる機能があるのでしょうか。
可能でしたら手順等教えていただけますでしょうか。

こんにちは

やり方はいくつかありますが、例えば以下になります。

dtRersult = dt.AsEnumerable.Where(Function(r) not String.IsNullOrEmpty(r(0).ToString)).GroupBy(Function(r) r(0).ToString).Select(Function(g) dtResult.LoadDataRow(g(0).ItemArray.Concat({g(1).Item(1),g(1).item(2),g(2).item(1)}).ToArray,False)).CopyToDataTable

Sample20230307-6L.zip (16.0 KB)

データはスクレイピング時のコピーを使いましたが、セル結合があるので、何らかの加工が入っているように思えます。本来はデータスクレイピングで取得したデータを上記の式にそのまま流し込めると思います。

LINQの扱いが難しければ、Whileループなどで必要単位で読んでいく方法になると思います。

1 Like

readrangeでdatatableに読み込んでしまえばあとはループ組んで3行ずつ処理するだけだと思います。
データスクレイピングは不要かと。

1 Like

Yoichiさん
参考にさせていただきます。
ご回答ありがとうございます。