セルの文字列をばらばらにして順に取り出す

[A1]に入力してある文字列を一文字ずつ、[B1][C1][D1]...に取り出す。
[B1]に次のように入力する

=mid($a1,column()-1,1)

入力したら[B1]をコピーして右に[C1][D1][E1]...と貼り付ける。貼り付けたセルの数だけ、[A1]の文字を左から順に取り出して表示できる。


これで何ができるのだろうか。僕が作ったのは複数の相手にメールを送るリストである。メールソフトのグループ分けが面倒なのと、よくグループメンバーが入れ替わるので、これを利用することにした。


[A1]に送信したい相手の属性を(この場合は)5種類まで文字列で入れると、その文字列のうち1文字でも有する相手はメールを送る対象として[L]の列にメールアドレスを再掲する。
[L1]のデータをメールソフトのアドレスに貼り付ければ複数の相手にメールを送ることができる。


そんなにスマートではないが、スマートでないので分かりやすくはあろう。これらの式を簡単に理解することができる方は、いくらでも下にリストを伸ばせるし、列の左右を自由に入れ替えて使い勝手の良いようにすると良い。



[B2]から[F13]は同じパタンの式で、[B2]の式をコピー・貼り付ければよい。

[B2]


=IF(ISERROR(FIND(B$1,$J2)),"",FIND(B$1,$J2))

以下、色のついているところは上のものを下にコピーすればよく、

[H2]


=IF(G2=9,"",B2&C2&D2&E2&F2&G2)

これはグループ員として該当していても、「任意」の欄に数字の9を入れると除外されるという仕組み

[L2]


=IF(H2="","",K2&"; ")


そして、[L1]に対象者をまとめる。

[L1]


=L2&L3&L4&L5&L6&L7&L8&L9&L10&L11&L12&L13