EXCEL 特定コード下の全ての品番横に自動転記

このQ&Aのポイント
  • EXCELを使用して特定のコードの下にある全ての品番を横に自動転記する方法について教えてください。
  • EXCELでリストのB列にある「コード-製番」とその下に複数の部品品番が入力されている場合、それぞれの「コード-製番」の下の部品品番をA列に自動で転記したいと考えています。
  • マクロを使用して特定のコードの下にある全ての品番を自動転記する方法について教えてください。
回答を見る
  • ベストアンサー

EXCEL 特定コード下の全ての品番横に自動転記

マクロについて教えて下さい。 リスト上B列に下記「コード-製番」、その下に複数の部品品番が入力されています。 これをセット単位として、それぞれコード単位で下行に順に入っています。 <コード-製番> (5桁のコード)00101-(10桁の製番)MA******** 例) 00101-MA******** 複数の部品品番 00110-MA******** 複数の部品品番 (下に続く) それぞれ「コード-製番」下の複数の部品品番全て、A列に5桁のコードが自動で記載されるようにしたいと考えています。 ※「コード-製番」の下の部品品番は、次のコードが表示されるまでの全ての行と考えて下さい。 この場合のマクロについて、どなたか分かる方が居りましたらご教示をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

とりあえずマクロなら sub macro1()  with range("A2:A" & range("B65536").end(xlup).row)  .numberformat = "0"   .formula = "=IF(MID(B2,6,1)=""-"",LEFT(B2,5),A1)"  .numberformat = "@"   .value = .value  end with end sub ぐらいで。 でも,マクロでやらせてる A2: =IF(MID(B2,6,1)="-",LEFT(B2,5),A1) 以下コピー みたいにして,数式で計算して並べさせておくのでも十分に見えますが。 #「コード-製番」とそれにぶら下がる部品番号の違い,言い換えると最初の「コード-製番」の次の「コード-製番」をどうやって識別できるのか,正しい情報が提供されていません。そういうところをよく加味して,工夫してみて下さい。

yasuhito_s1
質問者

お礼

お世話になります。 早速回答して頂き有難うございます。 イメージ通りで驚きです。 それからコメントにありました、次の「コード-製番」の識別についても、ご指示頂いた通り、いろいろな品番が有り説明も難しく、回答を頂けるか不安でした。今後が有ればより注意して質問させて頂きたいと思います。 感謝です。

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.2

A1セルに =IF(MID(B1,6,3)="-MA",LEFT(B1,5),OFFSET(A1,-1,0)) と入力して、下方向にコピー。

yasuhito_s1
質問者

お礼

お世話になります。 早速回答して頂き有難うございます。 こういう方法もあるんだと、改めて驚きです。 しかし、リストのボリュームがすごい量のため、下方向にコピーするのも大変なんです。 説明が足りず申し訳ありません。 お忙しい中、お手数かけました。

関連するQ&A

  • EXCEL 特定品番部品の記号無をハイライト表示

    マクロ初心者ですが、どなたか分かる方が居ましたらご教示をお願いします。 B列に複数の品番がありますが、先ずは頭に「AAC」「DGA」という品番のみを抜粋します。 抜粋した2種類の部品において、G列に何も記載がないセルのみ色(赤色)を付け、記号が抜けてることを知らせたいと考えています。

  • EXCELシートの振り分け転記の自動化について

    こんにちは、excel初心者です。 あるexcelシートの中に、数字コードが書いてあるボックス?の中に2種類か、3種類のそれぞれアルファベットコードと表題がそれぞれ書いてあります。 これを別シートにそれぞれの数字コードとアルファベットコードと表題に見やすくするために振り分けたいのですが、 いちいち一つ一つのセルをコピーペストの繰り返しで膨大な時間が掛かりました。 マクロVBAの本を読みましたが、その”数字コードボックス”のアルファベットコードの種類が2,3,4種類と順不同です。 これらの順不同型のセルの塊を自動転記は可能でしょうか? 自動化のイメージとしては、 1;B2セル数字コードを選択、コピー、別シートの数字コード列に移動、貼り付け。 2;元シートにかえって、A5アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 3;元シートにかえって、A4表題を選択、コピー、別シートの表題列に移動、貼り付け。 4;元シートにかえって、A8アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 5;元シートにかえって、A7表題を選択、コピー、別シートの表題列に移動、貼り付け。 6;元シートにかえって、A11アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 7;元シートにかえって、A10表題を選択、コピー、別シートの表題列に移動、貼り付け。―と 8;元シートにかえって、12行B列の数字コードを感知したら、11から2行はすべて削除。 9;次の”数字コードボックス”に移動します。 自分で考えてイメージしただけなのですが、この様な事は可能でしょうか? また、マクロに書くコードはどのようなコードをかけば良いでしょうか? しょ 初心者なりに必死に考えてみましたが、聞いた方が速いと思いこちらにご相談させて頂きました。 何卒宜しくお願い致します。

  • Excel 縦形式の価格表を横形式に変換したい

    お世話になります。 縦形式(JANコード一覧形式)の価格表を、自社システムに当てる為に列方向に変更したいです。 同一の品番に複数の色があり、サイズによって価格が違うことがあります。サイズが違っても価格均一の商品もあります。 価格帯が2つまでなら自分でできるのですが、2つ以上だと難しいです。 添付画像左側の(I~N列)ように、同一商品で最安値から順に列方向に次の価格が並んで欲しいです。 一つの品番に対して色が複数あっても殆どがサイズで価格が変わるだけですが、まれに色によって単価が違うこともあって困ってます。その場合のやり方も教えていただけると助かります。 https://toushitsu-off8.com/excel-chouhuku-naraberu/ こちらのサイト様を参考に途中まで作っていますが(添付画像右側)、行き詰っています。なんか枠からずれてる。 F列を、同一品番の中から下代を昇順で番号を振らないといけないんでしょうが、やり方がわかりません。 私が試している方法よりも良いやりかたがあれば教えてください(VBAやマクロは使えません)。どうかお助けください。よろしくお願いします。

  • Excelで別ブックに内容を転記する方法

    Excelで別ブックに内容を転記する方法を教えていただきたいです。 あるワークブック(転記先・画像上)上にデータの一覧表を作成したいと考えています。 その一覧表には項目が複数ありますが、全てではなく一部の項目のみ、 別のワークブック(転記元・画像下)から内容をコピーした上で、 自動的に転記先の表の最下行に追加できるようにしたいと考えています。 転記元のワークブックは複数ありどの列にどの項目の内容が書いてあるか、は変わりませんが、 何行分の項目が入力されているか、は一定ではありません。 項目1の記入があれば同じ行の他の項目も全て記入されています。 ただし転記先に必要のない項目(画像のXYZなど)もあり、 表と項目の並びも転記先と転記元で異なっています。 マクロを用れば可能かと思い自分なりに調べては見たところ、 ActiveSheetの指定した列の1行目~最下行を選択 ThisSheetの指定した列の最下行に張り付け という流れを必要な項目分だけ繰り返せばいいのかと思いましたが、 実際にどのように式を組み合わせていけばいいのかが分かりませんでした。 説明も稚拙で分かりづらいかと思いますが、 ご回答いただけましたら幸いです。宜しくお願いいたします。

  • エクセルで検索結果が複数の場合すべて抽出する

    Excelでシート営業とシート顧客の2つがあります。どちらも互いの部署のデータが入っています。 シートの説明をします。シート顧客のD列に部品コード【145847】のような数字が1000以上あり、シート営業にも同じ数字がB列に1000以上ランダムにあり更に同じ数字が出てきます。シート営業のA列には、取引先コードが【123-254】とあり、同じ部品コードでも違う取引先コードがいくつかあります。 そこで私の作りたいのは、シート顧客をベースにして、部品コードD1を検索値として、シート営業の部品コードB列の検索範囲から検索して、ヒットした取引先コードのみをシート顧客の部品コードD1隣空セルに入れたいのです。このとき、検索結果が複数あった場合はさらに隣の空セルにいれたいのです。開きセルE.F.G.H.I.Jのように10個程度必要です。つぎは部品コードD2を検索値として行います。これを1000以上繰返したいので、関数かVBAを考えています。 長くなってすみません。 マクロについては あまり詳しくないので できれば関数を使いたいのですが 無理でしょうか? マクロを使うのであれば 分かりやすくプログラムを教えていただきたいのですが・・方法が分からず困っています。 お手数ですが、どうかお教えください。

  • (エクセル)複数の検索ワードから検索し転記する。

    (エクセル) 複数の条件にあうレコードを検索し転記する方法を教えてください。 会社で加工履歴を入力し、それを加工のデーターベース及び、単価表としても使用しようと考えています。 以前は、部品コードを入力すると、VLOOKUPで別シートにある一覧から部品コードを検索し、その型式・部品名・金額・処理を出せるようにしていたのですが、同じ部品コードで違う処理加工をするケースが存在し、VLOOKUPでは先頭の1つのみしか結果が出せない為、手入力で行っていたのですが、手入力の際、そこのセルの数式が飛んでしまい、使いやすいのか使いにくいのかわからない状態でした。 そこで、部品コードと行った処理(合計4セル)から一致するものを検索し、言い換えれば、写真下段の加工フォームの様に、C4・C5・D5・E5の4種から一致するレコードを検索し、写真上段の一覧からその結果をC7・E7・C8に挿入すればいいのかと思い、色々とマクロを組んでみましたが、一向に作動しません。 このようなケースの場合、どういったマクロを組めばいいのでしょうか? どなたか、御教授願います。

  • 「 複数の各レコードごと 」 を、希望順に並び替えるマクロは ?

    以前に似た質問をさせて頂きました時は、マクロ以外のご回答を頂きましたので、 今回は、「 マクロの回答 」 をお願いしたいと投稿いたしました。 何卒、ご教授くださいませ。 A列 の 下6桁 を除く数字は、 必ず、 1 ~ 10 です。 その 「 A列を優先キー 」 にて、「 複数の各レコードごと 」 を、 希望順 に入れ替えたいんです。 たとえば 「 4****** だけのレコード全部 ( 連続してます ) 」 を 「 エリア1 」 と 表現させて頂ます。  * 部分は、 必ず 6 桁 です。 左隅の数字 は 1 ~ 10 までだけ変動します。 このエリアの数は、 2 ~ 3 まで変動します。 ------------------------------------------------   下記例は、エリアの数が 3つ で、     左隅の数字 4、 2、 10  の場合です。 実行前 ( エリア順が 4、2、10 です ) A列 4****** ・ ・ 4****** 2****** ・ ・ 2****** 10****** ・ 10****** ↓↓↓ 実行後1 ( エリア順を 10、4、2 にさせたい。 実際には、エリア順は全部で5通りになります。 ) A列 10****** ・ 10****** 4****** ・ ・ 4****** 2****** ・ ・ 2******

  • エクセル:マクロの起動条件

    お世話になります。 以下の条件でのマクロを起動する方法、及びそのマクロを教えてください。 《条件》 ブックを開いた時、あるシートのC列でデータが入っている最下行の行番号とA列のデータが入って最下行の行番号の差が100以下だった場合、マクロを実行する。 (なおC列の行番号の方が必ず大きいです) ちなみに実行したいマクロは1~6の手順です。 1.ブックを開いたとき 2.「入力用」という名前のシートのC列でデータが入っている最下行の行番号とA列のデータが入っている最下行の行番号の差が100以下だった場合 3.「入力用」というシートにかかっているシートの保護をはずし 4.データが入っているC列の最下行のA~Z列を選択して、50行分 下にコピーする。  (例えば、C列の最下行が350行の場合、A350~Z350まで を選択したあと400行まで下にコピーする。) 5.再度シートの保護をかけ 6.A列でデータが入っている最下行の1つ下のセルを選択する ちなみに、2の条件に当てはまらないときはマクロを実行しません。 またC列の最下行よりA列の最下行が大きい数字になることはないはずですが、もし同じかA列の方が大きい場合、「エラー:C列よりA列が大きくなっています」と画面に表示させたい。 なお、行番号の差:100、選択するA~Z行、50行分下にコピー は変わる可能性があるので、修正する場合どの部分を修正すればよいかも教えてください。 よろしくお願いします。

  • 複数行の最下行の範囲選択

    こんにちは、マクロ初心者です。    A  B  C  D  E  F  G  H  I 1  あ  あ  あ        あ  あ     あ 2  あ  あ  あ        あ  あ     あ 3  あ     あ                 あ 4        あ                 あ 5        あ                 あ 6        あ                 あ 7        あ                 あ 8        あ                 あ 9        あ 10 上記のような表があるとき セル"A"列から"I"列までの最下行にあたる行を検索し、 更に最下行までの範囲をコピーして、別シートにコピーさせたいのです。 (上記の例だと、セル"A1"~"I9"の範囲をコピーする) Range("A1", Range("I1").End(xlDown)).Select Selection.Offset(0, 0).Select 上記のコードでできると思ったのですが、なぜか不必要な範囲まで選択されてしまいます。 (下方向に数行余計に選択されてしまう) これではダメなのでしょうか? ちなみに、数式などは入っておらず、入力されていないセルは全て空白です。 A列だけの最下行を選択するというのは簡単に出来たのですが、このように複数の範囲を 選択する場合は、どのようにコードを書くべきでしょうか。 マクロのスキルが無い為困っています。 アドバイスをよろしくお願いいたします。

  • EXCEL 頭に特定の文字があった場合、文字記入

    B列に複数の品番がありますが、頭に「CY」があった品番のみK列に「図面は不要」と自動で入力するように下記マクロに追加したいのですが、教えて下さる方からの回答をお待ちしています。 ※BからK列のJ列に記載があったものだけを抜粋しています。 sub macro()  range("B:K").autofilter field:=9, criteria1:="="  activesheet.autofilter.range.offset(1).entirerow.delete shift:=xlshiftup  activesheet.autofiltermode = false end sub

専門家に質問してみよう