- ベストアンサー
Excelで部品一覧をまとめる方法
- Excelで部品一覧を作成する際に、数式やマクロを使用することで効率化する方法を紹介します。
- 部品の売り上げ表から、部品一点ごとに価格や仕向国などの情報を追記するために、部品一点につき一行を使った部品表を作成します。
- 通常の方法では時間と手間がかかるため、数式やマクロを活用することで作業効率を向上させることができます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号ANo.4です。 すいません、JとFが入れ替わっておりました。 【誤】 =IF(ROWS($1:2)>SUM($B:$B)+1,"",IF(OR(J1=J$1,COUNTIF(J$1:J1,J1)=VLOOKUP(J1,$A:$B,2,FALSE)),INDEX($A:$A,MATCH(J1,$A:$A,0)+1),J1)) 【正】 =IF(ROWS($1:2)>SUM($B:$B)+1,"",IF(OR(F1=F$1,COUNTIF(F$1:F1,F1)=VLOOKUP(F1,$A:$B,2,FALSE)),INDEX($A:$A,MATCH(F1,$A:$A,0)+1),F1))
お礼
ご回答ありがとうございます。 関数はなんとか理解できましたが、私にとっては活用が難しく感じまして、今回はベストアンサーを お出しすることができませんでした。 またExcelを勉強しつつ、kagakusukiさんの関数が使えるよう努力させて頂きます。
- kagakusuki
- ベストアンサー率51% (2610/5101)
ANo.3様の添付画像と同じ配置とした場合、F2セルに次の数式を入力してから、F2セルをコピーして、F3以下に貼り付けると良いと思います。 =IF(ROWS($1:2)>SUM($B:$B)+1,"",IF(OR(J1=J$1,COUNTIF(J$1:J1,J1)=VLOOKUP(J1,$A:$B,2,FALSE)),INDEX($A:$A,MATCH(J1,$A:$A,0)+1),J1))
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! ご希望の表の2・3列目は関数で対応できると思いますので、 単に、行数を増やすだけのコードの一例です。 元データはA・B列の2行目からあるとします。 Sub test() Dim i, j As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(i, 2) > 1 Then Rows(i + 1 & ":" & i + Cells(i, 2) - 1).Insert j = i + 1 Do Until j = i + Cells(i, 2) Range(Cells(i, 1), Cells(i, 2)).Copy Cells(j, 1).Select ActiveSheet.Paste j = j + 1 Loop End If Next i Application.CutCopyMode = False End Sub こんなんではどうでしょうか? B列は不要のようなのでB列すべてを削除 → B・C列はVLOOKUP関数等で対応してみてください。 尚、一旦マクロを実行すると元に戻せませんので別Sheetでマクロを試してみてください。 参考になれば良いのですが・・・m(_ _)m
お礼
すいません。関数orマクロと言いながら、tom04様の回答を見させてもらって、全然マクロのことを知らないことがわかりました。一つ一つの意味はおぼろげながらわかるのですが、とても活用できるレベルではありませんでした。 次回から自分のステータスも掲載してこのようなことがないようにします。 本当に申し訳ありませんでした。
お礼
回答ありがとうございます。 とてもシンプル且つわかりやすくて助かりました。 以後、これを使わせていただきます。