• ベストアンサー

エクセルでグループ名簿を作成~編成を自動化したいが・・・

ちょっと込み入ったグループ分けをエクセルで作りたいのですが ・関数を組み合わせるだけで可能か? ・マクロを組めば可能か?その場合比較的簡単か? それぞれやり方を教えて欲しいのです。 そのグループ分けとは・・・ 例えば12人の人がいます。 これを4班に分けてリーダーを決めます。 普通ならば3人の班×4ですが ここを4人班×4にしたいのです。 どういうことかというと Aさん、Bさん、Cさん、Dさんをリーダーとします。でそれぞれA班、B班、C班、D班とします。 Aさんに着目すると AさんはA班リーダーだが、1人の班員としてB班のグループに入る ということです。 ここでエクセルで処理したい部分は AさんリーダーのA班からはBさんをハズしたいんですね。 つまりAさんとBさんがお互いにリーダーをやりあうのを避けたい訳です。 ですから 「A班のセルにBさんがいる」ときに「B班のセルにAさんを入れた」場合、 なんらかの(警告)表示をさせたいんです。 表示自体はなんでもいいのですが、編集中に気付くようにできないでしょうか? エクセルで班分け表を作成していまして、手作業で確認していましたが、実際の人数はもっと多いので、少しでも自動化できないかと思い、本やネット上を探しましたが似た事例があまりないのです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#70958
noname#70958
回答No.2

私なら、下記のように条件付書式を使います。 例えばA1:D1にリーダーの名前を入力し、その後A2:D4に班員の名前を順次入力していくとして、 A2:D4を選択し、[書式]>[条件付き書式] で  数式が   =NOT(ISNA(MATCH(INDEX($A$1:$D$1,,COLUMN()),INDEX($A$2:$D$4,,MATCH(INDEX($A$1:$D$4,ROW(),COLUMN()),$A$1:$D$1,0)),0)))  書式   パターン⇒赤 等 Excel2003で動作確認。 ------------------------------------------------------ 自セルの名前をリーダーの一覧から探し、 (もしあれば)そのグループの班員の一覧から、自グループのリーダーの名前を探し、 (もしあれば)背景色を赤にする、という内容です。 なお、相対参照を使って素朴に  =NOT(ISNA(MATCH(A$1,INDEX($A$2:$D$4,,MATCH(A2,$A$1:$D$1,0)),0))) としても同様に動作はしますが、ドラッグ&ドロップでセルを移動すると参照がずれてしまいます。 このケースでは、一見迂遠ですがROW,COLUMNを使った方が堅牢です。 また、同様の条件で[条件付き書式]ではなく[入力規則]を設定することもできますが、 一時的に条件を満たさない状態にできる方が、入れ替え操作の際に便利ですし、 作業の内容を考えると、[入力規則]でドロップダウンリストを併用した方が間違いがないと思います。 以上ご参考まで。

yamya
質問者

お礼

ありがとうございます。 なんとかなりそうです。

その他の回答 (1)

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ご参考 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html ・change イベントを使って、リーダーが重なる場合には、アラームを表示するようにしてみてはいかがでしょうか。

yamya
質問者

お礼

ご紹介のリンク先をもとにいろいろやってみました。 かなり参考になります ありがとうございました。

関連するQ&A