<Excel操作>Excelの情報を整形し、別 Excelテンプレートに転記したい

こんにちは。初めての投稿です。
以下作業について、良い方法があればご教授頂けたら幸いです。

実現させたい作業
・障害管理表(Excel)から情報を取得し、障害報告書(別Excelのテンプレート)に転記したい。

1.情報元Excelの3行目以降のカラム「ステータス」(C列)が現在月で完了となっているものを抽出
(例)現在日付が1月の場合「1/1 完了」「1/12 完了」「1/30 完了」・・・といったものが対象
1.障害対応管理表.xlsx (9.7 KB)

2.1で取得した情報を障害報告書(Excel)に転記
例)1で取得した情報が3つだった場合は3つ障害報告書を作成する。
転記情報
・顧客名
・件名
2.障害報告書.xlsx (10.1 KB)

以上、よろしくお願い致します。

1 Like

こんにちは。

コピーシーツActivityを使用すれば、出来ると思います。

簡単なWorkflowを作ってみました、ご参照ください。

ExcelTransfer.zip (26.9 KB)

1 Like

Antoine_Chaussin様

回答ありがとうございます。
早急な回答大変助かりました。

動作も確認致しました。
もう一点ご質問させて頂きたいのですが、
障害管理表(Excel)から情報を取得する際の条件を、以下の通り設定する方法はありますでしょうか?

【取得条件】
・障害対応管理表のステータス(C列)において現在日付(現在月を見て)完了となっている行のみ取得する。

例)現在日付が1月の場合「1/1 完了」「1/12 完了」「1/30 完了」の情報のみ取得し報告書作成
出力結果としては株式会社A、B、Cのみ作られる挙動を実現したいです。

良い方法あればご教授頂けたら幸いです。

1 Like

月のみをチェックすると以下のコードを関数にAssignすればステータスカラムの月を取得ができます

row(“ステータス”).ToString.Split({“/”},StringSplitOptions.None)(0)

現在の月を以下のコードで取得することが出来ます

DateTime.Now.Month

この二つの関数を比較すれば、出来ると思いますがいかがでしょうか。

2 Likes

Antoine_Chaussin様

ありがとうございます。
回答頂いた内容で、For Each Rowの中で、Assign、if条件分岐を設定し、実現できました!

現在For Each Rowの中で回していますが、Read Rangeで範囲指定し取得する際に、現在日付が1月の場合「1/1 完了」「1/12 完了」「1/30 完了」の情報のみDataTableとして持たせることは実現可能でしょうか?(※対象月のみFor Eachとして処理させたい為)

何度も申し訳ございませんが、良い方法ご教授頂けたら幸いです。

1 Like

DataTableから必要な情報のみをフィルタすることが可能です。例えば1月完了の行を取得するには以下のコードをAssignすることができます

DataTable.Select(“ステータス LIKE ‘1/%’”)

DatarowのArrayで取得されますので、処理する時にForEachRowActivityではなく、ForEachActivityを使用する必要があります。

2 Likes

Antoine_Chaussin様

ありがとうございます!
>DatarowのArrayで取得されますので、処理する時にForEachRowActivityではなく、
>ForEachActivityを使用する必要があります。
こちらで試してみます!
また何かありましたらご質問させて頂きます。

大変助かりました。