- ベストアンサー
Excel 複数の当番の氏名を抽出したい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
式を間違えてます、惜しい~ッ! B19: =INDEX($A$5:$A$17,SMALL(IF(B$5:B$17="●",ROW($5:$17)),$A19)) ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ =INDEX($A$5:$A$17,SMALL(IF(B$5:B$17="●",ROW(B$5:B$17)),$A19)-4)
その他の回答 (4)
- SI299792
- ベストアンサー率47% (772/1616)
前質問のアドレスは載せた方がいいです。 https://okwave.jp/qa/q10169883.html Excel2016 Microsoft365、両方で使えるようにしたいのですね。
- imogasi
- ベストアンサー率27% (4737/17069)
WEB記事にある、 「条件に合うデータを関数で全て順に抽出できる数式の作り方」 で解説されている関数式を本件に合わせてみました。 URLが長いので、この文章で照会すれば、記事が出るはず。 ーー 例データ A1:B A列 B列 A <ーー第3行目から以下行にデータ B C ● D E F ● G H ● I J 以下略。 セルA19に「該当」と入れる。実際は「巡回担当1」などか。 セルB19に =IFERROR(INDEX(A:A,1/LARGE(INDEX(($B$2:$B$17="●")/ROW($A$2:$A$17),0),ROW(A1))),"") 下方向に式を複写。 結果 A19:B21 該当 C F H 実際は巡回担当1と巡回担当2しか出ないのかもしれないが。 === 条件に合う行を、連続した行に抜き出す関数式です。 「条件に合う行を抜き出す」問題は、式も長く、式の意味を理解するのが難しく、いつも苦労します。 しかし質問は結構多い。 小生は、配列数式の利用や、中間データを作る式の回答を何度もしたように思う。 その為か、最近は(2021,365では)FILTER関数が新設されていて、そちらの紹介・利用が主流でしょう。
- msMike
- ベストアンサー率20% (364/1804)
[No.2]の補足 「ROW($5:$17)」の部分はそのままでも構いません。問題は末尾の「-4」の有無です、為念。
- SI299792
- ベストアンサー率47% (772/1616)
$A$5:$A$17 が間違っています。 =INDEX($A:$A,SMALL(IF(B$5:B$17="●",ROW($5:$17)),$A20)) にして下さい。 前回回答の数式も、 $B:$B の様に行全体を指定していました。勝手な変更をすれば正しい答えが出ないのは当然です。 A1から始める前提なので A5を指定すると 4行ずれます。だから、本来C が表示されるはずがその 4つ下のG が表示されています。 どうしても範囲指定にしたかったら、 $A1:$A17にして下さい。
お礼