[[20161018145701]] 『フィルターの機能を関数だけで実現する』(ゆう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フィルターの機能を関数だけで実現する』(ゆう)

Sheet1のA1からC101に次のようなデータがあります。男女の数は半分ずつで、それぞれ50人であるとします。

名前 性別 成績
太郎 男 A
次郎 男 B
花子 女 A



良子 女 S
三郎 男 C

条件に当てはまるデータのみSheet2に、関数を使って順番に書き出したいと思います。

たとえば、性別が男であるデータのみを抜き出すと、Sheet2のA1からC51は次のようになると思います。Sheet2のA52からC101のセルには、何も表示されないと思います。

名前 性別 成績
太郎 男 A
次郎 男 B



三郎 男 C

Sheet2のA1からC101にはすべて何らかの関数を入れておいて、条件に当てはまらないセルは、何も表示しないというやり方を考えています。

初心者なので考え方も教えて頂けると幸いです。

よろしくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


Sheet2のA2=IFERROR(INDEX(Sheet1!A:A,SMALL($D:$D,ROW()-1)),"")
として、A/B/C列に右・下方向にコピー。
Sheet2のD列を作業列とし、
Sheet2のD2=IF(Sheet1!B2=$D$1,ROW(),"")
として、下方向にコピー。
Sheet2のD1に、男または女と入力する

(mm) 2016/10/18(火) 16:22


ありがとうございます。

関数が長くなってもいいので、作業列を使わないで作ることはできるでしょうか?
(ゆう) 2016/10/18(火) 16:37


 Sheet2のD1セルに男女の区別を入力
 Sheet2のA2セルに
 =IFERROR(INDEX(Sheet1!A$1:A$101,SMALL(IF(Sheet1!$B$2:$B$101=$D$1,ROW($2:$101),""),ROW(A1))),"")
 と入力してShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)
 その後A2セルを右および下へフィルコピー、ではどうか。

 なお、SMALL関数内はデータ範囲を指定するが「Sheet1!A$1:A$101」部分は1行目からとしてくれ。
(ねむねむ) 2016/10/18(火) 16:56

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.