- ベストアンサー
複数社員の名字により識別をさせ決まった記号を入れる
お世話になります、全くの素人で何もわかりませんがご教授お願いいたします。 社員の名字により識別をさせ決まった記号を入れる 藤井、藤巻、藤瀬、藤城田、秋川、秋丸田、丸山、春田、春日、田中、田丸 藤から始まる人には○、秋から始まる人には△、丸から始まる人は×、それ以外の人は除外 といれたいのですが、どのようにしたらいいのでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
既に3つの方法が提示されていますが他にもあります。 B2以下へ名字を入力したものとし、A2以下へ記号を代入する数式を設定するものとしたとき下記の数式を使うと同じ結果が得られます。 既に提示された関数を使う方法 回答No.1のVLOOKUP関数を使うとき A2=IFERROR(VLOOKUP(LEFT(B2),{"藤","◯";"秋","△";"丸","×";"",""},2,FALSE),"除外") 回答No.2のCHOOSE関数を使うとき A2=CHOOSE(MAX(({"藤";"秋";"丸";""}=LEFT(B2))*{1;2;3;4}+1),"除外","○","△","×","") 回答No.3のMID関数を使うとき A2=IFERROR(MID(" ○△×",FIND(LEFT(B2)," 藤秋丸"),1),"除外") 今回のINDEX関数を使うとき A2=IFERROR(INDEX({"○";"△";"×";""},MATCH(LEFT(B2),{"藤";"秋";"丸";""},0)),"除外") 回答No.1では「E2:F6を定義用エリア」を使っていますが質問の分類条件が少ないので数式内に配列を{}で括れば定義用エリアが不要になります。 また、定義用エリアの代わりに名前の定義を使うとセル番地の定義ミスを防げます。 例 定義名:Data 配列:={"藤","○";"秋","△";"丸","×";"",""} または =$E$2:$F$7 (但し、$F$7には ="" と言う数式を設定する) 尚、比較データのLEFT(B2)は正式な書式はLEFT(B2,1)ですが第2引数の1を省略できます。 また、MID関数の例で回答No.3と違う点はIF関数を省略するために対象文字列の先頭に空白を追加することでB列が未入力の行に対する帰り値を" "(空白1文字)にしています。(但し、最終処理ではTRIM関数で空白の1文字を削除して""に置き換えます) 更に、OFFSET関数を使う方法もありますが省略します。 仕事に使うのであればこのサイトで質問するよりExcelの入門書や応用の参考書で学習すべきです。 他人が組み立てた数式は解読ができなければ他の用途に転用できませんので毎回質問しなければならなくなり甘えから抜けきれなくなります。
お礼
わかりやすいご説明ありがとうございました。 今後は質問をしないよう勉強させていただきます。 ありがとうございました。
- Chiquilin
- ベストアンサー率30% (94/306)
=IF(A1="","",IFERROR(MID("○△×",FIND(LEFT(A1),"藤秋丸"),1),"除外")) でも。
お礼
お忙しい所ご教授ありがとうございました。 こちらの方法もためさせていただきます。
- Chiquilin
- ベストアンサー率30% (94/306)
=CHOOSE(SUM((LEFT(A1)={"藤","秋","丸"})*{1,2,3})+1,"除外","○","△","×") とか。
お礼
ありがとうございました。 説明不十分なものにかんしご対応いただき感謝いたします。 本当にありがとうございました。