画像のようにデータを抽出する方法を教えてください。
製品A,B,C、、ごとのデータは大抵1つ(数とその日付のひと組)だけです。
いままでに2組あったことはないくらい稀てすが、あるかもしれないので、その行にある数字は全て抜きだすということです。
1度だけではなく、毎週このデータがきて、表のように抜きだす作業です。
もしマクロかVBAかよく分からないですが必要ならば、組んだ経験がないので、わかりやすく教えていただければ助かります
よろしくお願いします
もしどうしても難しければ、日付は抜きにして、数だけの羅列でもかまいません(A 2 4 のように)
No.5ベストアンサー
- 回答日時:
No.4
- 回答日時:
マクロを下記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の文字がない場合、エラーにしています。
エラーの場合、エラーメッセージを表示して停止します。
不明点があれば、補足してください。
No.3
- 回答日時:
補足ありがとうございました。
追加での補足要求です。
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のケースがあるので、念のための確認です)
No.2
- 回答日時:
>申し訳ないのですが、添付していただいた画像は拡大できないので、小さくて見えません。
こちらにアップしました。
https://gyazo.com/8f8d76b2b7992c5fd2fde6fab4113b49
No.1
- 回答日時:
補足要求です。
1.各シートの正確なセルの位置がわかりません。
添付図のようになっていると、理解して良いでしょうか。
もし、セルの位置が異なる場合は、その旨補足してください。
2.左側のシートのシート名は何でしょうか。
3.右側のシートのシート名は何でしょうか。
4.左側のシートの日付は、1/31まであるのでしょうか。
ありがとうございます。
補足を書こうとしましたが、グルグルして画像を載せることができません。
申し訳ないのですが、添付していただいた画像は拡大できないので、小さくて見えません。
明日以降また画像を載せてみますのでお待ちください
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel教えてください。 下記のことが出来るのは、マクロですか?条件付き書式でしょうか、、?知恵を 5 2022/11/12 09:33
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- Excel(エクセル) Excel 2019で質問があります。 計測器のデータをExcelで記録したんですが、1秒刻みで記録 4 2022/09/07 22:46
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
VBA 空白セルを削除ではない方...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
多量のSUMIF式を軽くしたい
-
ActiveReportについて
-
データ取得時のエラーに関して
-
この行は既に別のテーブルに属...
-
VBAで「"」[']をエスケープする...
-
VisualBasicでデータ検索プログ...
-
CString型の文字列連結について
-
ACCESSからEXCELに出力する際、...
-
VB6のListの使い方
-
EXCELVBAでSQLserverからデータ...
-
エクセル マクロの組み方について
-
ポケコン PC-E650 の...
-
COBOL数値転記をCOPY句内での仕様
-
LoadPictureしたイメージデータ...
-
Web画面を遷移してもデータを保...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
S9タイプからXタイプにデータ...
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
Accessで該当データにフラグを...
-
ユーザーフォームのテキストボ...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
[C言語] コメント文字列を無視...
-
VBAを使ってOutlookメール本文...
-
プログラミング python pandas ...
-
VBA 毎日取得するデータを順番...
-
<VB>String→Object
-
カンマからスラッシュに
おすすめ情報
ありがとうございます。
そのような要領です。
具体的なセル番号は添付の通りです。
赤で囲ったものが、セル番号です。
G列は製品名
W列はひとつの製品に対するあ、い、う、え~などの項目があり、今回は「あ」の項目だけを抽出します。
該当行は、画像のように8行書ごとで数百あります。
日付は、2022Julyのように年月の形です。
これは毎月かわりますが、列BTで終わるのは変わりないです。
シート名は英語で30字くらいあり、製品に関わることで載せることができません。
抽出先は同じファイルではなく、別ファイルになるので、添付の表のとなりにsheet2などの適当な名前で作って、
完成したものを別ファイルにコピペしたいです。
抽出先の表例は、次に補足します。
ほぼデータは一組で、念の為2つつくりたいですが、3つは絶対にないので不要です。列はAGまでで大丈夫です。
よろしくお願いします
ありがとうございます。
1,2 大丈夫てす
3の4 各製品の最初の行ではないです。
添付のtotal 〜からweeks〜までがひとまとまりで一つの製品です。
抽出するのはExpiry〜なので、8この内上から5番目です。
G列には8こすべての行に同じ製品名がはいってます
3のその他は大丈夫です
4はぜったいないので不要です
今まで2つもないです。1つだけです
5 確かに一つもないことがあります
商品名の抽出は必要です。
日付と数にハイフン「−」が出れば助かりますが、空欄でも大丈夫です。
6の2 毎月同じです
その他、言及していないところは書いていただいているとおりで大丈夫です。
ご丁寧にありがとうございます。
さっそくどうもありがとうございます!
素晴らしいですね。尊敬します、、
言い忘れたのですが、シート1、つまり元データをで該当するセルを黄色に塗りつぶすことはできますか?
数のとこだけです。日付にはいりません。
先の私の手書きの表でいうと、
AA3 、AC16、 Y24 続く、、
を標準色の黄色で塗りつぶす感じです。
できればで大丈夫です。