- ベストアンサー
一致する数字があれば○無ければ×と表示させたい
こんにちは。いつもお世話になっています。 A列に社員番号、B列に社員名の入っている250人の社員名簿があります。 これに10月3.10.17の出席を入力しなくてはいけなくなりました。 出席簿は紙に社員番号のみ記入されているので、とりあえず別シートのA列から日付別に出席した社員番号を入力しています。(番号は来た順なのでランダムです) 社員番号 名前 10/3 10/10 10/17 AM08256 山田太郎 ○ × ○ となるようにしたいのですが、どのような関数を入れれば良いのでしょうか? ご教授下さい。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
社員名簿シートがある同じブックに日付毎の別シートがあり、日付毎シートそれぞれのA列に出席社員番号が入っていて、その情報を元に社員名簿シートに出欠を表示したい…と、言うことでしょうか? でしたら、VLOOKUP、MATCH、COUNTIF、等々……色々な関数が使用可能です。 COUNTIFでしたらこんな感じ =IF(COUNTIF(1003日のシート!A:A,A2)>0,"○","×") COUNTIFで対象シートのA列に検索したい社員番号が幾つ含まれているか調べ、0でない場合に○、それ以外を×にしています。
その他の回答 (3)
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 >別シートのA列から日付別に出席した社員番号を入力しています。 このシートの形式を以下のように仮定します。 (D列には全て○を記入してください。) A B C D AM08256 AM08256 ○ : : : VLOOKUPという関数を使います。書式は以下のとおりです。 =VLOOKUP(検索値,範囲,列番号,検索の型) この式を社員名簿の出欠の欄(○×を記入したい欄)に入れます。 各引数の指定の仕方は次のとおりです。 検索値:出席簿から検索したい項目の入ったセル、A1を指定します。 範囲:出席簿の範囲を指定します。別シートに作成したものですと、「sheet2!A1:D999」のようになると思います。注意する点として、検索値は必ず左端の列だということです。つまり、10/3はA1から始まりますが、10/10はB1、10/17はC1とします。 列番号:検索した値があったとき、返す列を指定します。 範囲の左端の列が1、2列目が2、3列目が3・・・となります。 この場合、D列を返したいので、10/3は4、10/10は3、10/17は2とします。 検索の型:FALSEを指定します。 とりあえず、これで○(出席)とエラー(欠席)が記入された表ができるはずです。 エラーを×に代えたい場合は、ERROR.TYPE関数を使い、if関数で#N/Aの場合に×を表示すればよいと思います。ただし、本当のエラー(社員番号の記入ミスなど)の場合もありますので、十分確認してください。 では。
お礼
ありがとうございます!実は最初にIFとVLOOKUPの組み合わせを考えたのですが 返す列をどうしたら良いのか分からなくなってしまった質問したんです。 すごく助かりました。 社員番号の記入ミスが実は一番心配です。 しっかり入力します。ありがとうございました!
実際の表を見ていないので、とんちんかんな答えだったらごめんなさい。 関数でしたらVLOOKUPあたりを使えばできると思いますが、もっと単純にこうしたらどうでしょうか。 出席簿を入力し終わったら、社員番号をキーに並べ替えををします。念のため、社員名簿も社員番号をキーに並べ替えをします。出席簿から○×部分を社員名簿にコピーします。 もし社員名簿の並び順が変わると困るのなら、どこかのセルに連番を入力しておき、上の作業がすんだら、連番をキーに並べ替えます。連番はマウスドラッグで簡単に入力できます。
お礼
ありがとうございます。出席した人の番号しか載っていなかったのでできなかったのですが、本来はこうすべきですよね。
- chie65536
- ベストアンサー率41% (2512/6032)
>どのような関数を入れれば良いのでしょうか LOOKUP関数、VLOOKUP関数を入れれば良い。
お礼
ありがとうございます。できました!
お礼
ありがとうございました!できました! 一致する番号を抽出することばかり考えていました。 そうか、含まれている番号の数を使えば良かったんですね。 助かりました!