Excelの業務効率化のための質問です。
Excelの名簿を使ってメール送信をおこなっておりますが、頻繁に行うため少しでも時短できるようにしたいと考えております。方法はExcelの機能だけでもマクロ使用でも構いません。
現在のメール送信までの流れは以下の通りです。
①オートフィルタを使って、メール送信対象者を絞り込む(フィルタリング項目は10項目程度で、複数を掛け合わせて行います)
②メールアドレスを50人ずつコピーしてメモ帳に貼り付ける
→あまり多いとサーバー側で迷惑メールと判断されて配信できない可能性があるため50人程度で区切っています。
③Excelの1つのセル内にコピーする
④置換で「改行」を「,」に変換する
⑤WEBメールの送信先にコピーする
という流れでおこなっておりますが、②~⑤の過程だけでも簡素化できればと思います。
<その他条件>
・メールサーバーはハッスルサーバーを使用
・Excel2016を使用
・一度に送るメールは数十件~500件程度
・名簿は固定ではなく随時追加されていきます
メール配信システムも検討しましたが、自分の悩みがすべて解決できるものなのか確信が持てないこと、データの訂正がExcelの方がラクであることや、クチコミで(相手の許可をとってメール配信しているにも関わらず)数人の顧客が迷惑メール報告しただけで問答無用で解約させられたなど、何かと不都合がありそうなので、Excelが一番良いと考えております。
以上、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
いえ、そんなことないですよ。
では、最後までやってみましょう。(No.2回答の続きで書きます)
4.セルD2に「 =ROUNDUP(SUBTOTAL(103,$A$2:$A2)/50,0) 」を入力します。
5.B列と同じ分だけ、下方向にコピーします。
6.セルE1に「 =TEXTJOIN(",",TRUE,IF($D$2:$D$1000=$D$1,$B$2:$B$1000,"")) 」を入力しますが、(!!ここ重要)この時、Ctrl + Shift + Enterを押下して入力します。(=配列数式として入力) (完成)
⇒ セルD1に、「1」と入力すると最初の50件が出ます。「2」と入力すると次の50件が出ます。
(解説)
*D列に補助列を追加します。SUBTOTAL(103,~)を使い、自分より上方のセルの存在数を数えます。これを50で割って整数に切り上げる事で、50件ずつ、1,1,1…,2,2,2,…,3,3,3,…とカウントします。
*TEXTJOINで指定する配列を、IF関数で絞り込みます。但し、TEXTJOIN関数がきちんと機能するよう、Ctrl + Shift + Enterを押下で配列数式として入力します。
*VBA(マクロ)じゃないと難しいように書いたのは、マクロではSpecialcellsメソッドやHiddenプロパティといった道具が一通り揃っていて、より簡単にできるからです。但し、仕事で使うならマクロは無効にした方が良いので、今回の関数を使う方法で十分良いと思いますよ。
ご丁寧に最後までお付き合い頂きましてありがとうございました!
これでやりたかったことがすべて出来ました。これだけ関数の特性を駆使して複雑なことを出来ることに驚きです。1回1回ではちょっとした時間短縮ですが、よくやる作業だったのでとても助かりました。本当にありがとうございました!!
No.2
- 回答日時:
Excel 2016なら、TEXTJOIN関数を使えます。
「 =TEXTJOIN(",",TRUE,$A$2:$A$1000) 」のような書き方で、複数のセルの内容をカンマ(,)で接続した一つの長いテキストを作れます。
これで質問者さんの労力は半減すると思いますが、如何でしょうか。
(回答は以上です。以下は補足です。)
残念ながらこの関数はフィルター非表示セルを含めてしまうので、アドレスリスト原本に直接使えず、何か工夫が必要です。
非表示セルを認識できるSUBTOTAL関数が使えそうなので、例を示します。
(アドレスデータはA列にあるとします)
1.セルB2に「 =IF(SUBTOTAL(103,$A2)>0,$A2,"") 」を入力します。
2.必要なだけ下方向にコピーします。
3.セルC1に「 =TEXTJOIN(",",TRUE,$B$2:$B$1000) 」を入力します。
⇒ フィルターをかけたアドレスがカンマ(,)区切りでC1に表示されます。(完了)
*B列に補助列を作ります
*SUBTOTAL(103,~)は件数をカウントする関数で、COUNTA関数と同じですが、非表示セルを無視してくれます。自行が非表示ならゼロ、表示なら1を与えるので、識別に使えます。
(*50件ずつ区切る方法は、別途考えましょう。まず上記まで実施されたら如何でしょうか。最終的には、TEXTJOIN関数とVBAのセルのHiddenプロパティを使った処理の組み合わせが簡便と思います。)
ご回答ありがとうございました。
上記のTEXTJOINとSUBTOTALにて見事に解決しました!
これだけでもかなりの工数が非常に削減されて非常にありがたいです。本当にありがとうございました。
最後に書かれているTEXTJOINとVBAのHiddenプロパティを~というのは、50件ずつ区切るためにはVBA(マクロ?)を使わないと難しいということでしょうか?
No.1
- 回答日時:
業務での作業なので、たぶん使えないと思いますが。
②以降の作業は2クリップボード拡張ソフトで可能なことです。
改行をカンマにするだけのために、Excel経由での置換をするのは
無駄な作業だと思いますから。
https://www.gigafree.net/utility/clip/
https://freesoft-100.com/pasokon/clipboard.html
メモ帳経由をするぐらいなら、テキストエディタにコピーして、
改行を置換するようにしたほうが、効率が良いと思います。
メモ帳以外なら、ほとんどのテキストエディタで改行を検索対象に
できますから、利教可能なものを探してみてください。
https://www.vector.co.jp/vpack/filearea/win/writ …
上記のようなソフトの使用が無理なら、Excelのマクロとして処理
すれば可能だと思いますので、別質問として投稿してみて。
ご回答ありがとうございました。
確かにテキストエディタを使った方が良かったですね。それすら思いつかずお恥ずかしい。
本件については、ふじのくま様のExcel関数を使用する方法で解決できそうです。お時間をとって頂きありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの表をメールで指定日時に送る方法を教えてほしい 2 2023/04/07 16:40
- Outlook(アウトルック) Excel表のメールアドレスリストからoutlookの宛先を設定、メールを送信する方法 2 2022/09/16 05:29
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- その他(メールソフト・メールサービス) これは詐欺メールでしょうか? カテ違いでしたらすみません。 「楽天カードから緊急のご連絡」というタイ 7 2022/06/30 19:37
- IT・エンジニアリング 外部業者と工程管理。どう管理してますか? 2 2022/07/07 16:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excel 2019 のピボットテーブル...
-
Excelのセルを飛ばして入力する
-
【マクロ】エクセルにかいてあ...
-
Excelのオートフィル
-
Excel初心者です。 詳しい方、...
-
スプレッドシート クエリ関数 1...
-
MOS365 Excel Expert / Excel R...
-
西暦や和暦の表示をyyyymmdd表...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセルの数式で教えてください。
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
エクセルで指定した日付、店舗...
-
【Excel】セル内の時間帯が特定...
-
Excelのグラフ軸について
-
Excel 2019 は、SPILL機能があ...
-
関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報