• 締切済み

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                 

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元データである左側の表が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に、ラベル発行用である右側の表が自動的に作成される筈です。

atom9648
質問者

お礼

ご回答いただきありがとうございます。手順を詳細にご紹介いただきましたので、すぐ出来ました。是非、活用させていただきます。本当にありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

元の表がシート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,"")))

atom9648
質問者

お礼

ご回答ありがとうございます。早速、表を作成したところうまくできました。ずっと悩んでおりましたので、大変助かりました。本当にありがとうございます。

関連するQ&A