応答していないベンダーと協力していますが、ExcelはベンダーのCSVファイルインベントリをまったく検索できません。私たちのチームはUnixを知らないし、使用していませんが、単純なIFループ1つまたは2つとawk
ORを使用するとsed
問題が解決することがわかります。
元のファイルは次のとおりです。
Col1 Col2 ... Col8 ..... Col30 Col31 .. Col30+N
---------------------
UPC MasterSKU ... UnitCost ..... AltSKU1 AltSKU2 .. AltSKU_N
一部のMasterSKUにはいくつかのAltSKUがあり、一部には318があります。この最大金額は毎月変更される場合があります!
例:
UPC MasterSKU Cost AltSKU1 AltSKU2 .... AltSKU_N
------------------------------------------------------
10000001 ABC $5.00 ABC01 ABC001 ABC1
10000002 BCD $2.34 BCD01 BCD.go BD.c.2 ...200 AltSKUs later... BDDCD7
私たちのチームにはExcelが必要で検索アルゴリズムが限られているので、単一の列にすべてのAltSKUを一覧表示し、コストを横に表示する必要があります。
これが私が得たい結果です:
UPC MasterSKU Cost AltSKU
--------------------------
10000001 ABC $5.00 ABC01
10000001 ABC $5.00 ABC001
10000001 ABC $5.00 ABC1
10000002 BCD $2.34 BCD01
10000002 BCD $2.34 BCD.go
10000002 BCD $2.34 BCD01
... repeat for 200 AltSKUs
10000002 BCD $2.34 BDDCD7
注:ABC MasterSKUで何が起こりましたか? AltSKUが3つだけなので、行も3つしかありません。空でない最初の3つのAltSKUの後には、315個の空のAltSKUがありません。
答え1
awkでこれを行う1つの方法は次のとおりです。
パスワード:
$ awk '{ for (i=4; i <= NF; i++) print $1, $2, $3, $i }' file1
ファイル1:
10000001 ABC $5.00 ABC01 ABC001 ABC1
10000002 BCD $2.34 BCD01 BCD.go BD.c.2 BDDCD7
結果:
10000001 ABC $5.00 ABC01
10000001 ABC $5.00 ABC001
10000001 ABC $5.00 ABC1
10000002 BCD $2.34 BCD01
10000002 BCD $2.34 BCD.go
10000002 BCD $2.34 BD.c.2
10000002 BCD $2.34 BDDCD7