こんにちは。初めての投稿です。
以下作業について、良い方法があればご教授頂けたら幸いです。
実現させたい作業
・障害管理表(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
s_143ki
7
Antoine_Chaussin様
ありがとうございます!
>DatarowのArrayで取得されますので、処理する時にForEachRowActivityではなく、
>ForEachActivityを使用する必要があります。
こちらで試してみます!
また何かありましたらご質問させて頂きます。
大変助かりました。