![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルでセルの条件が複数一致したら別シートに転記される方法をお教えください。
シートを2枚用意して、配達日ごとに一覧化したいのです。
事前に用意したシート(配達表)の“配達”と“配達時間”が一致したら
その方の名前と注文個数を右側に反映したいのですが・・・
注文データが多すぎて困っています。
宜しくお願いします。
■シート名:注文データ
A B C D E
------------------------------------------------
1 しめい 対応 配達日 時間 個数
------------------------------------------------
2 たけだ 配達 6/20(月) 13:00 2個
3 みうら 配達 6/18(土) 14:00 4個
4 らもす 郵送 6/20(月) ― 5個
5 いはら 配達 6/20(月) 14:30 8個
6 かつや 配達 6/20(月) 15:00 6個
7 みうら 郵送 6/20(月) ― 4個
■シート名:配達表
A B C
------------------------------------
1 配達 6/20(月)
------------------------------------
2 12:00
3 12:30
4 13:00
5 13:30
6 14:30
7 15:00
8 15:30
9 16:00
マクロを実行すると・・・
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
■シート名:配達表
A B C
------------------------------------
1 配達 6/20(月)
------------------------------------
2 12:00
3 12:30
4 13:00 たけだ 2個
5 13:30
6 14:00 みうら 4個
6 14:30 いはら 8個
7 15:00 かつや 6個
8 15:30
9 16:00
No.3ベストアンサー
- 回答日時:
こういうのは「複数条件による抜き出し問題」だ。
関数で出来ればおなじみのやり方で良いのだが、既に出ているように式が長く複雑で、初心者には何をやって居るかわからない式になる。毎度週に数回このタイプの質問が出て、同じようなタイプの答えになる。Googleででも「imogasi方式」で照会すれば、過去の沢山の例と回答(そのタイプも)が出てくる。
ーー
まず初心者や急ぐ場合はデーターフィルターフィルタオプションの設定で済ませられないか勉強すべきだ。
ーー
本来、こういう仕事の関連のエクセル表は、VBAを勉強してそれを使うべきと思う(既に回答も出ているようだ)
関数で抜き出し問題や表の組み換えは、VBAで無いと、天下りの長い式をコピペで使うだけになる。
ーー
私が紹介している「imogasi方式」では、Sheet2に時刻の所定の行に出す問題なので複雑になりすぎる。
ーー
VBAでやってみる。
例データ
しめい対応配達日時間個数
たけだ配達6月20日13:002個
みうら配達6月18日14:004個
らもす郵送6月20日ーー5個
いはら配達6月20日14:308個
かつや配達6月20日15:006個
みうら郵送6月20日ーー4個
(注意)
「ーー」セルは空白とする
「月日」列は、エクセルの年月日を入れておくこと(日付シリアル値(わかりますか)) 文字列では不可
6/20(月) の様な表示は、表示形式の設定でやること(エクセルの常識) m/d(aaa)
時間の列も時刻シリアル値で入れてあるとする。文字列では不可
ーー
コード
標準モジュールに
Sub test01()
Dim sh1, sh2
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
d = sh1.Range("A65536").End(xlUp).Row
On Error Resume Next
For i = 2 To d
'--条件をかけて選別
If sh1.Cells(i, "B") = "配達" And sh1.Cells(i, "C") = sh2.Range("B1") And _
sh1.Cells(i, "D") <> "" Then
t = sh1.Cells(i, "D")
'---Sheet2で時刻行を探す
For r = 2 To 30
If sh1.Cells(i, "D") = sh2.Cells(r, "A") Then Exit For
Next r
'--該当行の値をSheet2の時刻該当行セット
Sheet2.Cells(r, "B") = sh1.Cells(i, "A")
Sheet2.Cells(r, "C") = sh1.Cells(i, "E")
End If
Next i
End Sub
ーー
実行結果
Sheet2
配達6月20日
12:00
12:30
13:00たけだ2個
13:30
14:00
14:30いはら8個
15:00かつや6個
15:30
16:00
・・・・・・
この回答への補足
回答ありがとうございます。
1点だけ追加で教えてください。
「注文データ」からデータを抜くと、転記先からも消えるようにしたいです。
キャンセルもありまして・・・
転記先セルをいったん全て白紙にしてから、
転記を実行すると言えば分りますでしょうか。
ご指導宜しくお願いします。
No.2
- 回答日時:
この程度ならワークシート関数でも対応できるが如何でしょうか。
配達表のA列に時刻を入力しておく事としています。
データシート範囲は200行としていますのでデータ量に合わせて調整して下さい。
配達表のB2に=IF(COUNTIF(Sheet1!$D:$D,$A2),INDEX(Sheet1!A:A,SUMPRODUCT(("配達"=Sheet1!$B$2:$B$200)*($A2=Sheet1!$D$2:$D$200)*ROW(Sheet1!$A$2:$A$200))),"")
C2に=IF(COUNTIF(Sheet1!$D:$D,$A2),INDEX(Sheet1!E:E,SUMPRODUCT(("配達"=Sheet1!$B$2:$B$200)*($A2=Sheet1!$D$2:$D$200)*ROW(Sheet1!$A$2:$A$200))),"")
を設定、下方向にコピーして下さい。
No.1
- 回答日時:
このような感じでしょうか?
日付けも時間も一致しなければいけないのですよね?
配達時間が同一となるデータは存在しないのですね?
Sub test01()
Dim ws(1)
Dim myC As Range, tg As Range
Set ws(0) = Sheets("注文データ")
Set ws(1) = Sheets("配達表")
Set myC = ws(0).Range("A2")
Do Until myC.Value = "" '注文データA列にデータがある限り
If myC.Offset(, 2).Value = ws(1).Range("B1").Value Then '日付が一致すれば
Set tg = ws(1).Columns("A:A").Find(What:=myC.Offset(, 3).Text, LookAt:=xlPart) '配達表A列の時間検索
If Not tg Is Nothing Then '一致すれば
tg.Offset(, 1).Value = myC.Value '転記
tg.Offset(, 2).Value = myC.Offset(, 4).Value '転記
End If
End If
Set myC = myC.Offset(1) '1行下へ
Loop '繰り返し
End Sub
早々にご回答ありがとうございました。
imogasiさんから頂いたものとで頑張ります。
上記補足にも書いた消去方法が分かれば教えて頂けますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- その他(悩み相談・人生相談) 配達証明。郵便局員が受取人の署名を勝手に書く事って、ありますか? 現在、行政機関における処分に対して 1 2022/11/20 20:35
- 郵便・宅配 ヤマト運輸コレクト便の受け取りについて 1 2022/11/02 04:27
- 郵便・宅配 先月、Amazonでソファーを注文しましたが届きません。 先月、Amazonでソファーを注文したとこ 5 2023/08/26 08:07
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Amazon Amazonの荷物が配達完了になっているのに、「予定より遅れています(配達中です)」と出ています。 4 2022/06/15 09:32
- Amazon アマゾンの注文品について 1 2023/06/08 21:13
- 郵便・宅配 普通郵便、今回のGW中の配達は、例外なく2日と6日だけですか? 6 2022/04/26 00:39
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
-
4
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
5
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
6
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
7
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
8
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
9
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
12
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
13
excel vbaで日付一致の行にデータ転記
Excel(エクセル)
-
14
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
15
VBA 複数あるシートから複数条件に一致する値を別シートに抽出して値貼り付けしたい
Excel(エクセル)
-
16
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
17
別のシートから値を取得するとき
Visual Basic(VBA)
-
18
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
完全一致したら代入するマクロを教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
Excelで50個のセルに同じ文字を...
-
スプレッドシート、Excelでの数...
-
Microsoft Officeの中古は信用...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシートで使う数式を...
-
エクセルでの特別な文字を上に...
-
エクセル日付 文字列の関数がエ...
-
A列とB列を参照してC列に連番を...
-
エクセルVBA、別ブックへ転記す...
-
各ページの1番上の表示について
-
エクセルでセルに標準で入力さ...
-
EXCELの質問です 119から足した...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報