Excel表の組み替えについて

CSVで抽出したデータを縦に並べることができるか質問です。

現在CSVで抽出したデータが横並びになっており、
それを縦列に並べ替えしたいです。

大変恐縮ですが、お力添え頂けますと幸いです。

@yulax

There is no direct activity as such as it is not a direct transpose

You can read data into datatable and then perform loop on enumerable.Range(0,6)

Before that create a datatable dt2 with 2 columns

Ans inside loop use the current index and current index+6 to get the requred rows and add in add data row activity

Add data row ,array row should be {dt.Rows(0)(currentindex).ToString,dt.Rows(0)(currentindex+6).ToString} and give datatable ad dt2

Cheers

Excel表の組み替えについて.zip (4.1 KB)

説明するより見ていただいた方が早いかな?
と思って、ざっくり作成してみました。

【前提】
・社員列と金額列だけで構成されている。
・社員列数と金額列数が同じ。
・社員列が続いた後、金額列が続く

【解説】
・データ列の半分の回数分、データ行を追加する。
・その時の値は、入力元のDataTableの1行目(Row(0))のix列と、ix + 列数列である

お忙しい中、データの作成までしていただき誠にありがとうございます!

データ確認させて頂きまして動作自体は、実際の業務フローに組み込むことができそうです!ありがとうございます。

メッセージボックスの内容がどのような動作?をしているか把握できず、もしよろしければご解説いただけますでしょうか?

素人質問になってしまい大変申し訳ございませんが、
お時間ございましたらよろしくお願いいたします。

String.Join(“,”, dt_yulax.Columns.Cast(Of DataColumn).Select(Function(C) C.ColumnName)) & ControlChars.Lf & _
String.Join(ControlChars.lf, dt_yulax.AsEnumerable.cast(Of Datarow).select(Function(R) String.Join(“,”, R.ItemArray)))

基本的なところでは、String.Joinメソッドでしょうか。
String.Joinメソッドは、String.Join(区切り文字, 配列要素)とすると、配列要素の1要素ずつ、区切り文字で連結してくれるものです。
それを踏まえて、先の呪文を簡略化すると、

String.Join(“,”, A) & ControlChars.Lf & _
String.Join(ControlChars.lf, B)

になります。Aは、配列になった列情報、Bは配列になった行情報になります。

配列になった列情報Aは、dt_yulax.Columns.Cast(Of DataColumn).Select(Function(C) C.ColumnName)です。
これは、DataTable型の変数(dt_yulax)のそれぞれの列情報(Columns)を、DataColumn型に型変換(Cast)して、その列情報の中から、Function関数を使って、列名(C.ColumnName)を取得するものです。
この.Selectってのが、列名(C.ColumnName)を、配列要素として取得する"呪文"ですね。

この呪文は"Linq式"と言うのを調べると出てきます。

配列になった行情報Bは、dt_yulax.AsEnumerable.cast(Of Datarow).select(Function(R) String.Join(“,”, R.ItemArray))です。
これは、DataTable型の変数(dt_yulax)から、それぞれの行情報を配列にして(AsEnumerable)、それをDataColumn型に型変換(Cast)して、その行情報の中から、Function関数を使って、行のそれぞれの値(R.ItemArray)を、String.Joinを使って、データ行1行分の文字列としてを取得するものです。

そのデータ行1行分の文字列を、ControlChars.lfで区切った文字列にします。

混乱しちゃいますね(^^♪

新たに添付したファイルは、昔自分がDumpを取得するための作っていた共通XAMLです。

それと比べると、今回使った"Linq式"でのダンプの方法が、いかに簡単だと言う事がわかると思います。
Excel表の組み替えについて.zip (7.0 KB)