プロが教えるわが家の防犯対策術!

エクセルで図の様な表で赤枠のセルにA1からB10の表の当番に当たってる人の名前を入れたいのですが、どうすればうまく行くでしょうか?

「エクセルで図の様な表で赤枠のセルにA1か」の質問画像

質問者からの補足コメント

  • 関数を使って3人の名前を入れたいと思っています

      補足日時:2017/10/08 22:10

A 回答 (4件)

こんばんは!



画像の配置だとB12セルに
=IFERROR(INDEX(A$1:A$10,SMALL(IF(B$1:B$10="当番",ROW(A$1:A$10)),ROW(A1))),"")

配列数式なのでCtrl+Shift+Enterで確定!
B12セルのフィルハンドルで下へコピーしてみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。やりたい事が出来ました。配列数式、もうちょっと勉強します。

お礼日時:2017/10/09 10:30

自分ならC列に作業用のセルを設ける。



C1セルに
 =COUNTIF(B$1:B1,"当番")
と入力して、C1セルをC10セルまで複製します。

その後、B12セルに
 =IFERROR(INDEX(A$1:A$10,MATCH(ROW(A1),C$1:C$10,0),0),"")
と入力して、B12セルをB14セルまで複製します。


・・・大雑把な解説・・・

C列の式はB列に”当番”と入力されているセルをカウントします。
そしてカウントされた初めの値のセルが何行目にあるのかをMATHC関数で調べ、
その行のA列の値をINDEX関数で表示させる。
MATCH関数に使われているROW関数はセルをコピーさせたときに「1」「2」「3」を返すために使ってます。
これにより、MATCH関数の検索値に「1」「2」「3」をコピーした時に自動的に割り当てています。

前の回答者さん…tom04さん…はMATCH関数を使わずこれを上手く配列数式に組み込んでいます。

※IFERROR関数はExcel2007から追加された関数です。それ以前のバージョンでは使えません。
    • good
    • 0
この回答へのお礼

詳しく説明いただきありがとうございます。とても参考になりました。

お礼日時:2017/10/09 10:27

①C1に


=if(b1="","",row)
と入れ、c10迄オートフィル。
②1番目上の赤枠に
=indirect("a" & min(c:c))
③2番目の赤枠に
=indirect("a" & sum(c:c)-max(c:c)-min(c:c))
④3番目の赤枠に
=indirect("a" & max(c:c))
で如何でしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。indirect関数、参考になりました。

お礼日時:2017/10/09 10:28

キーボードで打ち込む

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!