[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『上詰めに関数で抽出』(koke)
sheet1 A B C D E 1 東京 神奈川 埼玉 千葉 2 名1 ○ ○ 3 名2 ○ 4 名3 ○ ○ 5 名4 ○ ○ 6 名5 ○ ○
sheet2 A B 1 埼玉▼ 名1 2 名5 3 4 5 6
上の様なシートがありまして シート2のA1で埼玉を選ぶとB列に上詰で ○印の付いた名前を表示したいのですが 関数で出来るでしょうか? ご指導ください よろしくお願いします
WindowsXP Excel2003
Sheet2のB1 =IF(SUM(N(OFFSET(Sheet1!$A$1,,MATCH($A$1,Sheet1!$B$1:$E$1,0),COUNTA(Sheet1!$A$2:$A$6+1,1))="○"))<ROW(),"",INDEX(Sheet1!$A$1:$E$6,SMALL(IF((OFFSET(Sheet1!$A$1,,MATCH($A$1,Sheet1!$B$1:$E$1,0),COUNTA(Sheet1!$A$2:$A$6+1,1))="○"),ROW($A$1:$A$6),""),ROW()),1)) として、ShiftキーとCtrlキーを押しながらEnterキーで確定させて配列数式に。 以下コピーでどうでしょうか。
(川野鮎太郎)
リスト範囲に名前を作成して数式簡易化。 B1:E6を範囲選択して 挿入>名前>作成 として「上端行」にチェックしてOK。 B2:B6を範囲選択すると「東京」と名前ボックスに表示されて 範囲名が作成されたのが分かります。 Sheet2の数式を下記。 =IF(COUNTIF(INDIRECT($A$1),"○")<ROW(A1),"",INDEX(Sheet1!$A$1:$A$6,SMALL(IF(INDIRECT($A$1)="○",ROW(INDIRECT($A$1))),ROW(A1)))) 配列数式なので Enterで確定せずにCtrlとShiftを押しながらEnter。 この数式を適当な範囲までコピーします。 (みやほりん)
面白そうなので私もお一つ Sheet2のB1に =IF(SUM((Sheet1!$B$2:$E$6="○")*(Sheet1!$B$1:$E$1=$A$1))<ROW(A1),"", INDEX(Sheet1!$A$2:$A$6,SMALL(IF((Sheet1!$B$2:$E$6="○")*ROW($A$1:$D$5)*(Sheet1!$B$1:$E$1=$A$1),ROW($A$1:$A$5)),ROW(A1)))) と入力してCtrl+Shift+Enterで確定 で、どうでしょう? (SoulMan)
川野鮎太郎さん みやほりんさん SoulManさん回答していただきありがとうございます どちらの数式も希望どうりの結果でした! ありがたく活用させていただきます しかし皆さん長い数式をスラスラと・・・ウラヤマシイ また ご指導ください ありがとうございました(kohe)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.