• ベストアンサー

連続した整数を返す関数はあるでしょうか

人の名前を入力した隣りのセルにだけ、上の人から順に1,2,3…と自動的に番号を振っていきたいのですが、ちょうどいい関数が分からなくて困っています。 10まで数字が振れればOKなんですが… 乱数を発生させて、上から順に1,2,3…と並ぶようにするとか、いろいろやってみたんですがうまくできません。(数が重複してしまったり) 何か良い関数はないでしょうか・・

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

  • ベストアンサー
  • sero
  • ベストアンサー率47% (916/1944)
回答No.1

名前がA列の1行目からあると仮定すると、カウントしたいセルに =IF(A1="","",COUNTA(A$1:A1)) として、必要な分だけ下にコピー。 11人以上名前があってもカウントしますので、10人まで出止めたい場合はもう一工夫必要です。

noname#13682
質問者

補足

ありがとうございます、大変助かります。 人が休みのところはカウントせずに空白にして、 次の人に番号を割り振れるようにしたいのですが、 もしまだご覧になっていましたら、ちょっとお待ちいただけますか、もう少し補足しますので、、

その他の回答 (8)

  • goowon
  • ベストアンサー率39% (131/328)
回答No.9

■簡単に列を増やして考えました。   A   B   C   D 1 山田  1   1   1 2      0   1   3 鈴木  1   2   2 4 田中  1   3   3 ■B・C・D列式はコピーでOKです。 B1式 =if(A1="",0,1) B2式 =if(A2="",0,1) B3式 =if(A3="",0,1) B4式 =if(A4="",0,1) C1式 =C1     C2式 =C2+C1 C3式 =C2+C3 C4式 =C3+C4 D1式 =if(B1=0,"",C1) D2式 =if(B2="",0,C2) D3式 =if(B3=0,"",C1) D4式 =if(B4="",0,C2) 関数も良いですが列を増やして考える方法あります。 B・C列はダミーですので、列表示を表示しないにしたら良いと思います。

noname#13682
質問者

お礼

こういう方法もあるのですね、とても勉強になりました。教えていただけて感謝致します。お礼が遅くなり申し訳ありませんでした。 この場をお借りして皆様ありがとうございました。心の中で皆様に20ポイントをつけさせていただきます。

  • kamejiro
  • ベストアンサー率28% (136/479)
回答No.8

こんなことでしょうか。    A      B      C 1        佐藤  =IF(A1="出勤",COUNTIF(A$1:A1,"出勤"),"") 2  出勤    山田  =IF(A2="出勤",COUNTIF(A$1:A2,"出勤"),"") 3        鈴木  =IF(A3="出勤",COUNTIF(A$1:A3,"出勤"),"") 4  出勤    磯部  =IF(A4="出勤",COUNTIF(A$1:A4,"出勤"),"") 5  出勤    山下  =IF(A5="出勤",COUNTIF(A$1:A5,"出勤"),"") 6  出勤    山本  =IF(A6="出勤",COUNTIF(A$1:A6,"出勤"),"") 7        木下  =IF(A7="出勤",COUNTIF(A$1:A7,"出勤"),"") 8  出勤    石川  =IF(A8="出勤",COUNTIF(A$1:A8,"出勤"),"") 9        磯野  =IF(A9="出勤",COUNTIF(A$1:A9,"出勤"),"")   10  出勤    福井  =IF(A10="出勤",COUNTIF(A$1:A10,"出勤"),"") フォントサイズの関係で桁ズレはあるかと思うのですが、ご自宅でお試し下さい。

noname#13682
質問者

お礼

kamejiro様たびたび来ていただいて本当にありがとうございます。お礼が遅くなって申し訳ありません。この方法も試しましたがうまくできました。本当に助かりました。教えていただけて感謝致します。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

>人の名前を入力した隣りのセル 「人の名前」かどうかは、どうして判断するのですか。 ある列に色々の種類のデータが入っていると、氏名の判別は難しい。 ある列に入力するのは、氏名だけで、1人分のデータ行には1行にのみ名前が入っていて、他の行は空白ですか。 (例)山田 太郎  135ー0021           25才           千代田区           神田1-1   木下 吉朗   234-1111 これは補足のどこかに書いてあれば、すみません。 ーーーーー 上記の場合、たとえば C列のC2に =IF(A2<>"",MAX($C$1:C1)+1,"") と入れて下に複写すればよい。

noname#13682
質問者

お礼

お礼が遅れてしまって申し訳ありません。大変参考になりました。詳しく教えて頂き感謝いたします。ありがとうございました。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.6

何かの役に立つかもしれないので、「S」という文字しかカウントしたくない場合も紹介しておきます。 =IF(A1="S",COUNTIF(A$1:A1,"S"),"") 大文字小文字は問いませんが、上記の式では半角の「S」しか反応しません。 OR関数の利用等で全角にも対応する式は作れます。

noname#13682
質問者

お礼

お礼が遅くなってしまい申し訳ありません、最初に教えていただいた方法でうまくいきました。ありがとうございます。この方法も活用できそうです。是非覚えておきたいです。何度も教えに来ていただいて本当に感謝いたします。ありがとうございました。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.5

B列の人の名前は無関係という事ですね。 A列に「S」と入力してある行だけ、上から順に整数を表示という事なので、No1の式がそのまま使えます。 C1セルにNo1の式を入れて、必要数下方向へコピーすればOK。 ちなみに、「COUNTA」は、ブランク以外のセルをカウントする関数です。 (「S」に限らず、セルに何かが入力されればカウントの対象になります)

noname#13682
質問者

お礼

seroさまでした、すみません、(><)急いでてダメですね。。

noname#13682
質問者

補足

7marineさま、皆様、たびたびありがとうございます。勤務時間がきてしまいましたので、今日帰宅しましたらすぐやってみたいと思います。アドバイスをありがとうございます。

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.4

No3です。 No1ではないですが、 列を二つ使用して良いなら簡単にできそうです 一列目(列幅を0にして非表示) =if(隣のセル="",0,1) ←一行目 =if(隣のセル="",上のセル,上のセル+1) ←二行目以降 二列目 =if(隣のセル="","",一列目のセル) どうでしょう?

noname#13682
質問者

お礼

ありがとうございました。この方法でもうまくいきました。度々教えていただいて本当に感謝します。

noname#13682
質問者

補足

7marineさまたびたびありがとうございます。勤務時間がきてしまいましたので、今日帰宅しましたらすぐやってみたいと思います。アドバイスをありがとうございます。

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.3

上の人とはセルの場所のことですか? 普通に =if(隣のセル="","",1) =if(隣のセル="","",2) =if(隣のセル="","",3) じゃダメ? 10まで打つのもいやなら =if(隣のセル="","",1) =if(隣のセル="","",上のセル+1)  ←2番目以降 とか 勘違いならすいません

noname#13682
質問者

お礼

ありがとうございました。お礼が遅れてしまい申し訳ありません。

noname#13682
質問者

補足

すぐにアドバイスをいただけてありがとうごさいます。 下の補足の補足なのですが、セルB1からB10まで、10人、人が並んでいる表で、A列の出欠欄に、出勤の「S」を入れた人にだけ、上から順に番号を自動的に振りたいのですが、 =IF(A1="S",(INT(RAND()*10)+1),"") などなど、、いろいろ考えたのですが、数字が重複したりして、うまくかず、もっとぴったりくる関数があるかなと、探しているのですが、、

  • kamejiro
  • ベストアンサー率28% (136/479)
回答No.2

関数ではありませんが、 方法1 A1のセルに 1 A2のセルに =A1+1 と入れて A3~A10のセルに A2の計算式をコピーし貼付をする。 方法2 A1のセルに 1 A2のセルに 2 と入れて A1とA2の両方のセルをアクティブにする A2のセルの右下までマウスポインタを合わせると、+に表記が変わります。 そのままA10のセルまでドラッグする。 で、いかがでしょうか。

noname#13682
質問者

お礼

kamejiroさま、大変失礼しました。「NO1さまもこちらをご覧になってください…」と書きたかったのですが、すみません。アドバイスありがとうございます。大変助かります。

noname#13682
質問者

補足

ありがとうございます、補足させていただきたいのですが、NO1さま、すみません、補足ボタンが出てこないので、こちらをご覧になってください) セルA1に、出勤か否か、 セルB1に、人の名前、 セルC1に、「もしセルA1がS(出勤)ならば、1を入れる、もし空白ならば、何も入れない」 というふうにしたいのですが、歯が抜けたようにお休みの人が出てくるので、そこを飛ばして順番に番号が入るようにしたいのですが、、 うまく説明できなくてすみません、、

関連するQ&A