- 締切済み
Excelの行のコピーと挿入について教えて下さい
商品に添付するラベル発行を考えています。受注数が1以外の場合は同じラベルを受注数分 発行したいと思います。 ラベルソフトの利用も検討していますが、ハードとコストの制約もあり、エクセルのデータをアクセス に取り込んで印刷する手順で進めています。 例ですが、下記の様な表で受注数が2以上の場合は、受注数を1にしてn行にして書き直す関数?マクロ?がありましたらお教え下さい。 会社名 商品名 発送先 受注数 会社名 商品名 発送先 受注数 A社 B C 1 A社 B C 1 D社 E F 1 D社 E F 1 G社 H I 2 → G社 H I 1 J社 K L 3 G社 H I 1 J社 K L 1 J社 K L 1 J社 K L 1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、元データである左側の表がSheet1に存在していて、それを基にしたラベル発行用である右側の表をSheet2上に作成するものとします。 又、Sheet1とSheet2のどちらの表も、その中の「会社名」と入力されているセルがA1セル、「商品名」と入力されているセルがB1セル、「発送先」と入力されているセルがC1セル、「受注数」と入力されているセルがD1セルであり、実際のデータは、各列の2行目以下に入力或いは表示されているものとします。 まず、適当な使われていない列(ここでは仮にSheet3のA列とします)の1行目のセル(Sheet3のA1セル)に 1 と入力して下さい。 次に、Sheet3のA2セルに次の関数を入力して下さい。 =IF(ISNUMBER(INDEX(Sheet1!$D:$D,ROW())),LOOKUP(9E+307,A$1:A1)+INT(INDEX(Sheet1!$D:$D,ROW())),"") 次に、Sheet3のA2セルをコピーして、Sheet3のA3以下に貼り付けて下さい。 次に、Sheet2のA2セルに次の関数を入力して下さい。 =IF( ROWS($2:2)<LOOKUP(9E+307,Sheet3!$A:$A),INDEX(Sheet1!A:A,MATCH( ROWS($2:2)+0.5,Sheet3!$A:$A)+1),"") 次に、Sheet2のA2セルをコピーして、Sheet2のB2~C2の範囲貼り付けて下さい。 次に、Sheet2のD2セルに次の関数を入力して下さい。 =IF( ROWS($2:2)<LOOKUP(9E+307,Sheet3!$A:$A),1,"") 次に、Sheet2のA2~D2範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。 これで、Sheet2に、ラベル発行用である右側の表が自動的に作成される筈です。
- KURUMITO
- ベストアンサー率42% (1835/4283)
元の表がシート1のA列からD列に入力されており、1行目は項目名で2行目から下方にデータが有るとします。 E列を作業列としてE2セルには次の式を入力して下方にドラッグコピーします。 =IF(D2="","",INT(MAX(E$1:E1))+D2) そこでお望みの表を別のシートに表示させるとしたらA1セルからD1セルには項目名を入力するとしてA2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$E:$E),"",IF(COLUMN(A1)<4,INDEX(Sheet1!$A:$D,IF(COUNTIF(Sheet1!$E:$E,ROW(A1))=1,MATCH(ROW(A1),Sheet1!$E:$E,0),MATCH(ROW(A1),Sheet1!$E:$E,1)+1),COLUMN(A1)),IF(COLUMN(A1)=4,1,"")))
お礼
ご回答ありがとうございます。早速、表を作成したところうまくできました。ずっと悩んでおりましたので、大変助かりました。本当にありがとうございます。
お礼
ご回答いただきありがとうございます。手順を詳細にご紹介いただきましたので、すぐ出来ました。是非、活用させていただきます。本当にありがとうございました。