- 締切済み
IF関数ですと長くなってしまうので・・・
既出でしたらすみません。 A列 B列 C列 1 1 出勤 2 2 出勤 5 3 休み 4 休み 5 出勤 というデータが入っていたとしまして、 C列の「出勤」(実際は時間が入っていますが)の場合には B列の数値をA列に表示させたいのですが、 出勤の番号を上から順番に表示させる関数がわかりません。 (今A列に入っている数値が本来表示させたい結果です) IF関数で出来ない事はないですが、TRUE,FALSEだけを繰り返していくと そうとう長くなってしまうので、何か良い方法がないでしょうか? よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- toshi_2010
- ベストアンサー率43% (25/57)
ご存知の上で関数を使用したいということでしたら、 申し訳ないのですが・・・ >C列の「出勤」(実際は時間が入っていますが)の場合には >B列の数値をA列に表示させたいのですが、 >出勤の番号を上から順番に表示させる関数がわかりません。 >(今A列に入っている数値が本来表示させたい結果です) このような作業はフィルタでC列の「出勤」(実際は時間で)だけを表示し、 A列に入っている数値ではなくB列に入っている数値で事足りるような気がします。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
データの範囲を1~99行とすると、 A1に、配列数式({}付:Ctrl+Shift+Enterで入力)で、 =IF(ROW()>COUNTIF($C$1:$C$99,"<>"),"",INDEX($B$1:$B$99,SMALL(IF($C$1:$C$99="","",ROW($C$1:$C$99)),ROW()))) 以下、コピー Bのセルが空白だと「0値」になる。
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルには次の式を入力し、式を確定する段階でCtrl+Shiftキーを押しながらEnterキーを押します。その後に下方にドラッグコピーします。 =IF(COUNT(C:C)<ROW(A1),"",INDEX(B:B,SMALL(IF(ISNUMBER(C:C),ROW(C:C)),ROW(A1)))) この式ではC列には時間が入っているとのことですので数値が有るものとしています。出勤の文字では対応しません。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>C列の「出勤」(実際は時間が入っていますが)の場合には >B列の数値をA列に表示させたいのですが、 具体的に、「休み」の場合に何が入っているのか表示してもらわないと・・・ 時刻データの場合は、1より小さい値ですから A1に "=if(c1<1,b1,5)" とすれば済みますし 「休み」のデータでif文を構成しても良いと思います。 >IF関数で出来ない事はないですが、TRUE,FALSEだけを繰り返していくと >そうとう長くなってしまうので、何か良い方法がないでしょうか? 逆に、どんな長文を考えたのか教えて欲しいです。