【課題】
以下の内容を満たすタスクを作成してみましょう。
■1. 事前準備
以下のファイルをダウンロードしてください。
https://www-1.sct.co.jp/download/automate/Sample_Task/00013961/00013961.zip
任意の領域(デスクトップなど)に解凍します。
■2. 内容(クリックして展開してください)
--------------------------------------------------------------------------------------------------
2種のExcel「商品在庫状況」および「顧客注文詳細」の2種のExcelの照合を行い、「出荷OK」「出荷NG」「該当商品なし」を判断します。
なお、商品は「商品コード」「ブランドコード」「サイズコード」「カラーコード」で必ず一意になり、重複は無いものとします。
また、Excelのデータは全て連続しており、途中に空白の行は存在しないものとします。
1.
顧客注文詳細にある「商品コード」「ブランドコード」「サイズコード」「カラーコード」の組み合わせの商品を、商品在庫状況から探す。
2.
該当する商品が存在する場合はその在庫を同じ行のF列に転記する。該当する商品が存在しない場合は、F列に「該当商品無し」と記載する。
3.
該当する商品が存在する場合は、在庫が注文数以上の場合にE列に「出荷OK」、在庫が足りない場合は「出荷NG」と記載する。
4.
1~3の処理を、顧客注文詳細の行数分繰り返す。
なお、今回の処理は5分以内に終了させなくてはならないものとします。
--------------------------------------------------------------------------------------------------
■3. 処理を作成する上での禁則事項
・「商品在庫状況」のExcelを全てデータセットとして取得する方法は禁止とします。データが3万行近く存在します。
・事前に手動で商品在庫状況Excelを加工する方法は禁止です。(例:該当するデータを一番上の行に移動する等)
■4.ヒント
(ヒントを見る際は、クリックして展開してください。ヒントはあくまでも一例です。)
ヒント1
上から順番に探す方法では、絶対に5分以内に終了しません。
順繰りに探す以外の方法を採用する必要があります。
ヒント2
作業用の列を作成し、そこに式を埋め込むとある程度時短できそうです。
Excel - 値の設定アクションで、「=SUM(A1:A5)」などと指定すると数式も指定できます。
ヒント3
おおよその手法は下記のコラムが参考になります。
コラム:データ検索などExcelが得意なことはExcelに任せてしまうのも手
https://automate.sct.co.jp/column/11743/
ただし、今回は複数の列にまたがっているので、そのままの方法は利用できません。
ヒント4
「商品コード」「ブランドコード」「サイズコード」「カラーコード」の組み合わせでユニークになるので、それら4列を結合した文字列もユニークになります。
ただし、数値の桁にはご注意ください。「91」「12」と「911」「2」の組み合わせは、結合すると同じになってしまいます。
最大桁数に満たない部分は0で調整する等が必要です。
ヒント5
式を埋め込んだセルを選択した状態で、「Ctrl + Shift + End」→「Ctrl + d」とすれば一気に下までオートフィル可能です。
ヒント6
Match関数を利用し、行特定→対象行のE列を取得、とする場合は、対象範囲を1行目から取った方が手間が少なくて済みます。
(2行目から取得すると、ヒットした数値に+1した行から取得する等、制御の手間が増えます。)
ヒント6
Excelにおける桁調整は「TEXT」関数で、AutoMateにおける桁調整は「format」関数で可能です。
■5. 解説及び構築例
以下のページをご参照ください。
https://automate.sct.co.jp/knowledge/13962/