下記のようなレコードが5万件あるエクセルの顧客管理シートがあります。
このシートをもとに差し込み印刷ではがきを作成しDMを発送するのですが、何日かに分けて発送しE列に発送日を入力します。
その際にA列の№をもとに、例えば1~150までを同日発送した場合、E列に一括で発送日が反映される方法を教えてください。
この表とは別に、発送日○/○ №○~№○ という表を作って、そこから一括で発送日が指定行に反映されればと思っています。
よろしくお願いします。
A ・・・B・・・ ・・C ・・・・D ・・・・・・E
№・・・名前・・ ・〒 ・・・・住所 ・・・・発送日
1 ・・・東京花子 ・157-00・・東京都
2 ・・・大阪太郎 ・222-00 ・・大阪府
No.1ベストアンサー
- 回答日時:
こんばんは!
E列の日付データは残しておく必要がありますよね。
そうなるとおそらく数式で対応できないような気がしますので、
VBAでの一例です。
↓の画像のようにH列に「発送日」「開始No.」「最終No.」を入力するという前提のコードです。
Sub 発送日()
Dim c As Range, r As Range, myFlg1 As Boolean, myFlg2 As Boolean
If Range("H1") = "" Then
MsgBox "発送日を入力してください"
Range("H1").Select
Exit Sub
End If
If Range("H2") = "" Then
MsgBox "開始No.を入力してください"
Range("H2").Select
Exit Sub
End If
If Range("H3") = "" Then
MsgBox "最終No.を入力してください"
Range("H3").Select
Exit Sub
End If
Set c = Range("A:A").Find(what:=Range("H2"), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
myFlg1 = True
MsgBox "開始No.なし"
Range("H2").Select
Exit Sub
End If
Set r = Range("A:A").Find(what:=Range("H3"), LookIn:=xlValues, lookat:=xlWhole)
If r Is Nothing Then
myFlg2 = True
MsgBox "最終No.なし"
Range("H3").Select
Exit Sub
End If
If myFlg1 = False And myFlg2 = False Then
With Range(Cells(c.Row, "E"), Cells(r.Row, "E"))
.NumberFormatLocal = "yyyy/m/d" '←表示形式は好みで!//
.Value = Range("H1")
End With
End If
End Sub
※ 本来であれば重複しないように最終番号(何番までDMを送ったか?)
をどこかに記録として残すのが良いのかもしれません。
※ 厳密にやれば細かいエラー処理が必要になるかもしれませんが、
まずはこの程度で・・・m(_ _)m
早速のご回答ありがとうございました。
やっぱりVBAなんですね。
ハードル高いですがコピぺしてやってみます。
ありがとうございました(*^▽^*)
No.2
- 回答日時:
別シートと言うシート名で内容をA列:発送日、B列:開始No、C列:終了No、としますね。
仮に1行目~1000行目まで入力予定とします。
E1に各タイトルが入っているなら、E1及びA1をE2及びA2と読み替えてください。
E1=SUMPRODUCT((A1>=別シート!B$1:B$1000)*1,(A1<=別シート!C$1:C$1000)*1,別シート!A$1:A$1000)
これは、別シートのB1~B1000の中でA1以下の行を探し、同様にC1~C1000の中でA1以上の行を探し、両方に一致する行の対応するA1~A1000のセルのデータ(つまり発送日)を取得するというものです。
配列計算の為、列全体にすると重くなるので、とりあえず1000あるとして記載しています。
内容をもう少し説明すると、
まず別シートのB1~1000でA1以下のものをTRUE、そうでないものをFORSEとして判定します。
*1によって、それを1と0の判定に変換します。
この時、例えば該当するのが3行目の発送日の期間だった場合、(1,1,1,0,0,0…)と判定されます。
同様に別シートのC1~1000で(0,0,1,1,1,1…)と判定されます。
3つ目は少し違って、そのまま別シートのA1~1000が入っています例で1/1から毎日とすると(1/1,1/2,1/3,1/4,1/5,1/6…)となっています。
そして対応するセルの数値がそれぞれかけられます。(日付も数値データなので)
(1*0*1/1,1*0*1/2,1*1*1/3,0*1*1/4,0*1*1/5,0*1*1/6…)という感じですね。
計算された結果(0,0,1/3,0,0,0…)となります。
これが合計されて1/3と表示されます。
発送日が数値として判定されないような入力(文字列として入力等)をしている場合は、掛け算の時点でエラーとなりますので、該当するセルの位置を判定して抽出するといった段階をくわえなければなりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- 郵便・宅配 クロネコヤマトについて、持ち込み発送を簡単に済ませるには?(集荷と比べて面倒) 3 2023/02/08 23:58
- 郵便・宅配 北海道版の日刊スポーツとスポーツ報知を購入しましたが1週間以上たっても届きません。 1 2023/02/28 21:34
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- 郵便・宅配 ラクマで購入して福岡県から昨日16時にコンビニでゆうパケットプラスで発送通知が送られてきました。私は 1 2022/05/05 10:21
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- Excel(エクセル) Power Query でのデータの一括修正について 2 2022/05/10 02:00
- 政治 保護者の間では、顧問の暴行を伴う指導も容認、橋下市長は、これを「狂っている」と拒絶 2 2022/12/23 10:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
”反映”は”表示させる”です。
発送履歴?それはどうやるのでしょう?
併せてCOUNTIFSの数式も教えていただければ嬉しいです。