データテーブルへ
月、日、社番、金額を保存しており、
それをexcelへ転記したいです。
・月の記入が初回にだけ記入されている形となっており、
それ以降の月日の指定?の仕方が分かりません。
・転記の際に、1列ずつ日付を確認し、該当のシートへ記入したいです。(例:3/1→3月分シートへ転記)
質問が分かりづらく、大変恐縮ですがお力添え頂けますと助かります!
データテーブルへ
月、日、社番、金額を保存しており、
それをexcelへ転記したいです。
・月の記入が初回にだけ記入されている形となっており、
それ以降の月日の指定?の仕方が分かりません。
・転記の際に、1列ずつ日付を確認し、該当のシートへ記入したいです。(例:3/1→3月分シートへ転記)
質問が分かりづらく、大変恐縮ですがお力添え頂けますと助かります!
You can use linq to first groupBy on month and then loop on the grouped data to add it specific excel
Dt.AsEnumerable.GroupBy(function(x) x(0).ToString)
this would group data on first column
Cheers
日付による転写シートの指定について.zip (6.8 KB)
ForEachRowで、行を繰り返し、値があったら、それをKeepして、値がなかったら、Keepしていた値を設定するようにしています。
そのKeepする領域は、DataRow型といって、対象とするデータテーブルの1行分の領域です。大概は、そのDataRowを使って、データ行の追加をしたりするのですが、今回はKeep用の領域として使っています。
全ての列の値が、空白以外の前の行の値で埋められたら、その”月"の列に、どんな値が格納されているかを調査し、その結果分、ForEachで繰り返します。
その繰り返しの中で、格納されている値の一意値でデータテーブルをフィルターして、出てきた結果をEXCELシートに貼り付ける。
こんなロボットです。読み解いてくださいね(^^♪
Hi @yulax
データを月ごとにグループ化し、それぞれ対応するExcelシートに書き込むことができます。
まず、Dt.AsEnumerable().GroupBy(Function(x) DateTime.Parse(x("Date").ToString).ToString("MMMM"))
を使用してデータをグループ化します。
次に、各グループをループ処理し、月の名前をシート名として取得し、group.CopyToDataTable()
を使ってデータテーブルに変換します。
最後に、WriteRange
アクティビティを使用して、適切なシートにデータを書き込みます。
もし役に立った場合は、解決策としてマークしてください。ありがとうございます!
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.