プロが教えるわが家の防犯対策術!

画像のようにデータを抽出する方法を教えてください。

製品A,B,C、、ごとのデータは大抵1つ(数とその日付のひと組)だけです。
いままでに2組あったことはないくらい稀てすが、あるかもしれないので、その行にある数字は全て抜きだすということです。

1度だけではなく、毎週このデータがきて、表のように抜きだす作業です。


もしマクロかVBAかよく分からないですが必要ならば、組んだ経験がないので、わかりやすく教えていただければ助かります
よろしくお願いします

もしどうしても難しければ、日付は抜きにして、数だけの羅列でもかまいません(A 2 4 のように)

「Excel 関数 またはマクロ、VBA」の質問画像

質問者からの補足コメント

  • ありがとうございます。
    そのような要領です。
    具体的なセル番号は添付の通りです。

    赤で囲ったものが、セル番号です。
    G列は製品名
    W列はひとつの製品に対するあ、い、う、え~などの項目があり、今回は「あ」の項目だけを抽出します。

    該当行は、画像のように8行書ごとで数百あります。

    日付は、2022Julyのように年月の形です。
    これは毎月かわりますが、列BTで終わるのは変わりないです。

    シート名は英語で30字くらいあり、製品に関わることで載せることができません。

    抽出先は同じファイルではなく、別ファイルになるので、添付の表のとなりにsheet2などの適当な名前で作って、
    完成したものを別ファイルにコピペしたいです。

    抽出先の表例は、次に補足します。

    「Excel 関数 またはマクロ、VBA」の補足画像1
    No.2の回答に寄せられた補足コメントです。 補足日時:2022/08/17 09:25
  • ほぼデータは一組で、念の為2つつくりたいですが、3つは絶対にないので不要です。列はAGまでで大丈夫です。
    よろしくお願いします

    「Excel 関数 またはマクロ、VBA」の補足画像2
      補足日時:2022/08/17 09:29
  • ありがとうございます。
    1,2 大丈夫てす
    3の4  各製品の最初の行ではないです。
    添付のtotal 〜からweeks〜までがひとまとまりで一つの製品です。
    抽出するのはExpiry〜なので、8この内上から5番目です。
    G列には8こすべての行に同じ製品名がはいってます
    3のその他は大丈夫です

    4はぜったいないので不要です
    今まで2つもないです。1つだけです

    5 確かに一つもないことがあります
    商品名の抽出は必要です。
    日付と数にハイフン「−」が出れば助かりますが、空欄でも大丈夫です。

    6の2 毎月同じです
    その他、言及していないところは書いていただいているとおりで大丈夫です。
    ご丁寧にありがとうございます。

    「Excel 関数 またはマクロ、VBA」の補足画像3
    No.3の回答に寄せられた補足コメントです。 補足日時:2022/08/23 09:22
  • さっそくどうもありがとうございます!
    素晴らしいですね。尊敬します、、

    言い忘れたのですが、シート1、つまり元データをで該当するセルを黄色に塗りつぶすことはできますか?
    数のとこだけです。日付にはいりません。

    先の私の手書きの表でいうと、
    AA3 、AC16、 Y24 続く、、
    を標準色の黄色で塗りつぶす感じです。

    できればで大丈夫です。

    No.4の回答に寄せられた補足コメントです。 補足日時:2022/08/23 14:53
教えて!goo グレード

A 回答 (5件)

>シート1、つまり元データをで該当するセルを黄色に塗りつぶすことはできますか?



下記に修正版をアップしました。
https://ideone.com/KvPW0F
    • good
    • 1
この回答へのお礼

再三にわたりどうもありがとうございました!
大変助かりました。
心より感謝します。

お礼日時:2022/08/26 16:09

マクロを下記URLにアップしました。


標準モジュールに登録してください。
https://ideone.com/Cp9M0H

仕様上の注意
1.設定項目
Const Folder As String = "d:\goo\data2"
は、左側のブックを格納してあるフォルダ名です。
あなたの環境にあわせて適切に設定してください。

Const BookName As String = "Book1.xlsx"
は、左側のブックのブック名です。
あなたの環境にあわせて適切に設定してください。

Const SheetName As String = "Sheet1"
は、左側のブックのシート名です。
あなたの環境にあわせて適切に設定してください。

2.Sheet2について
Sheet2は、マクロのあるブックに作成しておいてください。
マクロが設定するのはSheet2の以下の項目のみです。
①D列3行目以降
②AD列~AG列の3行目以降
③(万が一、数量が3件以上あれば、AH列以降も設定されます。通常は設定されません)
上記以外は設定しません。見出しなどは、あなたが事前に設定しておいてください。

3.左側のブックのレイアウトについて
下記URLにアップしました。念のため、ご確認ください。
https://gyazo.com/153816683825f1b1e666cf09f6cd74a2
この前提でマクロを作成しています。
黄色いセルの行が、数量の記入してある行になります。

4.W列の扱いについて
数量が記入してあるのは、8,16,24・・行になりますが、
この行のW列にはExpiryの文字があるはずなので、行のずれの確認のために
該当セル内にExpiryの文字がない場合、エラーにしています。
エラーの場合、エラーメッセージを表示して停止します。

不明点があれば、補足してください。
この回答への補足あり
    • good
    • 1

補足ありがとうございました。


追加での補足要求です。
1.左側のシー名は、マクロでは、Sheet1として記述します。
マクロ実行時は、Sheet1を実際のシート名に変更してから、実行することになりますが、
それでよろしいでしょうか。(以降、このシートをSheet1として記述します)

2.右側のシート名は、Sheet2とします。それでよろしいでしょうか。

3.Sheet1のレイアウトの確認です。以下で間違いないでしょうか。
①日付は、3行目に記述してあり、Y列からBT列まである。
②製品はG列で必ず8行で1製品となる。8行目から製品が記述される。
③製品の最初の行には製品名が必ず記述されている。
従って、G8,G16,G24,G32・・・・に製品名が必ず記述されている。
④数字が書かれている行は、各製品の最初の行のみである。
従って、8行,16行,24行,32行・・・に数字が書かれている。
(マクロが検索するのは、上記の行のみです。他の行はたとえ書かれていても無視します。)
⑤W列は、特に使用しないので、この列の内容は参照もしないし、何が書かれていても無視します。

4.Sheet2へ出力時、万が一3つ以上あった場合は、どうしますか。
案1:2つ検知した時点で打ち切る。したがって3つあっても、3つ目以降は無視される。
案2:3つ目以降を、AH以降の列へ記述する。(警告メッセージ表示なし)
案3:案2と同じであるが、その都度、警告メッセージを画面に表示する。
私は、案2又は案3が良いかと思います。

5.Sheet2へ出力する商品名は、実際に数量が記述されている商品のみでしょうか。
それとも、数量が記述されていない商品もSheet2へ出力するのでしょうか。
例えば、商品Bの、Y列~BT列に一件も数量が記述されていないとき、
商品Bは、Sheet2に商品名のみを記述し、日付と数量は空白にしますか。
それとも、商品BをSheet2に出力しないようにしますか。

6.マクロを登録するファイルですが、マクロを登録すると、拡張子が.xlsmになります。
①マクロを登録したファイルのSheet2へ結果を出力しますが、それでよいでしょう。
②Sheet1は、マクロを登録したファイルとは別ファイルになります。
このファイルの格納フォルダ、ファイル名は毎回同じなのでしょうか。
それとも月ごとに変わるのでしょうか。
同じであれば、マクロで固定情報として、フォルダ名、ファイル名をもち、処理を行います。
毎月変わるのであれば、ファイル選択ダイアログボックスを表示し、ファイルを選択した後、
そのファイルを処理します。
③Sheet1があるファイルの拡張子は.xlsxで間違いないでしょうか。
(たまに.xlsのケースがあるので、念のための確認です)
この回答への補足あり
    • good
    • 1

>申し訳ないのですが、添付していただいた画像は拡大できないので、小さくて見えません。



こちらにアップしました。
https://gyazo.com/8f8d76b2b7992c5fd2fde6fab4113b49
この回答への補足あり
    • good
    • 1

補足要求です。


1.各シートの正確なセルの位置がわかりません。
添付図のようになっていると、理解して良いでしょうか。
もし、セルの位置が異なる場合は、その旨補足してください。

2.左側のシートのシート名は何でしょうか。

3.右側のシートのシート名は何でしょうか。

4.左側のシートの日付は、1/31まであるのでしょうか。
「Excel 関数 またはマクロ、VBA」の回答画像1
    • good
    • 1
この回答へのお礼

ありがとうございます。
補足を書こうとしましたが、グルグルして画像を載せることができません。
申し訳ないのですが、添付していただいた画像は拡大できないので、小さくて見えません。

明日以降また画像を載せてみますのでお待ちください
ありがとうございました

お礼日時:2022/08/16 20:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング