- 締切済み
エクセルのフィルタオプション
エクセルのフィルタオプション http://tanosii.net/elze/database/mon05.htm に出ている、5の問題がどうしても解けません・・・ どなたか解き方を教えていただけないでしょうか??
- みんなの回答 (6)
- 専門家の回答
みんなの回答
添付図参照 1.範囲 I2:L7 を選択して、[挿入]→[名前]→[作成]を実行 2.“左端列”のみにチェックを入れて[OK]をクリック 3.下に示すセルにそれぞれの右側の式を入力 4.範囲 D2:G2 を下方にズズーッとドラッグ&ペースト D2: =IF(AND(INDEX(INDIRECT("_"&D$1),3)>=VALUE(RIGHT($B2,6)),INDEX(INDIRECT("_"&D$1),3)<=(RIGHT($B2,6)+$C2)),"○","") E2: =IF(MID(B2,2,1)=MID(INDEX(INDIRECT("_"&E$1),2),6,1),IF(AND(INDEX(INDIRECT("_"&E$1),3)>=VALUE(RIGHT($B2,6)),INDEX(INDIRECT("_"&E$1),3)<=(RIGHT($B2,6)+$C2)),"○",""),"") F2: =IF(LEFT($B2,2)=LEFT(INDEX(INDIRECT("_"&F$1),2),2),IF(AND(INDEX(INDIRECT("_"&F$1),3)>=VALUE(RIGHT($B2,6)),INDEX(INDIRECT("_"&F$1),3)<=(RIGHT($B2,6)+$C2)),"○",""),"") G2: =IF(LEFT($B2,2)=LEFT(INDEX(INDIRECT("_"&G$1),2),2),IF(AND(INDEX(INDIRECT("_"&G$1),3)>=VALUE(RIGHT($B2,6)),INDEX(INDIRECT("_"&G$1),3)<=(RIGHT($B2,6)+$C2)),"○",""),"")
- Wendy02
- ベストアンサー率57% (3570/6232)
私は、ワークシート関数は得意とはしませんが試してみました。 あくまでも、フィルタオプションを前提とします。 入力は、H1とH2する。 4等の場合、H1は空白、H2 は815963 3等は、H1は4、H2は314159 と入力します。 当然、5等も可能です。 設定: リスト範囲 $A$1:$C$9001 検索条件 $E$1:$F$2 検索式は、二分します。 E1: 空白 E2: =IF($H$1="",TRUE,RIGHT(LEFT(B2,2),LEN($H$1))*1=$H$1) F1:空白 F2; =AND($H$2>=RIGHT(B2,LEN($H$2))*1,$H$2<RIGHT(B2,LEN($H$2))+C2) 実務上の質問ではありませんので、このぐらいで良いでしょう。 必要に応じて、出てきた氏名等を別シートにコピーしたりすればよいです。
- keithin
- ベストアンサー率66% (5278/7941)
ちなみに参考として,前述の「フィルタオプションの設定のクライテリアとして数式を使う」の手順が判ったら,あとは応用で「組」と「番号」をわざわざ切り出さずB列の「xx組xxxxxx」を直接調べて抽出させる事も出来ます。 参考: L1を空にしておく L2に =AND(LEFT(B2,2)="26",RIGHT(B2,6)-$H$2<=0,$H$2-RIGHT(B2,6)-C2<0) L3に =AND(LEFT(B2,2)="18",RIGHT(B2,6)-$H$3<=0,$H$3-RIGHT(B2,6)-C2<0) L4に =AND(MID(B2,2,1)="4",RIGHT(B2,6)-$H$4<=0,$H$4-RIGHT(B2,6)-C2<0) L5に =AND(RIGHT(B2,6)-$H$5<=0,$H$5-RIGHT(B2,6)-C2<0) をそれぞれ用意,A:C列データ範囲を対象に,L1:L5を検索条件範囲として抽出する。 #フィルタオプションの設定のクライテリアに数式を使う方法は,エクセルのヘルプにも実例を挙げて使い方が解説されていますので,参考にしてみて下さい。といっても,一発で理解するのは少し大変だと思いますので,出来るまで何度も練習してみてください。 #なお実際の作業としては,作業列を追加するなら 組の列,持っている連番の最初の番号の列(番号1),持っている連番の最後の番号の列(番号2) をそれぞれ切り出して抽出した方が,簡単に結果が得られます。 クライテリア領域の作成例: 組 番号1 番号2 26 '<=361270 '>=361270 18 '<=560063 '>=560063 14 '<=314159 '>=314159 24 '<=314159 '>=314159 34 '<=314159 '>=314159 '<=815963 '>=815963
- keithin
- ベストアンサー率66% (5278/7941)
ちょっと誤記がありましたので訂正。 訂正: K2に =(E2<=$H$2)*($H$2<C2+E2) K3に =(E2<=$H$3)*($H$3<C2+E2) K4に =(E2<=$H$4)*($H$4<C2+E2) K5に =(E2<=$H$5)*($H$5<C2+E2) ですね。 結果には影響ありませんでした。 失礼しました。
- keithin
- ベストアンサー率66% (5278/7941)
吉沢一枝さん 4等 沢村万里さん 3等 蘇我昭宏さん 2等 がそれぞれ当選です。 手順: 1.簡単のため,B列のくじ番号をD列にコピーし, データメニュー(Excel2007ではデータタブ)の区切り位置を使い,「組」の文字で区切って D列に組の値(17など),E列に番号の値(806460など)を再掲しておく #数式で計算しても良いが計算式はコピーしてその場で形式を選んで値のみ貼り付けて値化しておくこと 2.とりあえず見やすいように G1に組,H1に番号と記入 G2 26 H2 361270 G3 18 H3 560063 G4 4 H4 314159 G5 空白 H5 815963 をそれぞれ記入 3.クライテリア領域を作成 J1を空っぽにしておく J2に =D2=26 J3に =D2=18 J4に =RIGHT(D2)="4" K1を空っぽにしておく K2に =(E2<=$H$2)*($H$2<=C2+E2) K3に =(E2<=$H$3)*($H$3<=C2+E2) K4に =(E2<=$H$4)*($H$4<=C2+E2) K5に =(E2<=$H$5)*($H$5<=C2+E2) をそれぞれ記入 (参照セルを間違えないこと。$の有無を絶対に間違えないこと。1行目は空にしておくこと) #条件としてJ列のように実数を使うか,K列に書いたようにセル参照を使うかは趣味なので,ご自分でもやり方を変えて練習してみてください。 4.フィルタオプションの設定(2007ではデータタブ並べ替えとフィルタグループの詳細設定)を開始 抽出先は指定した範囲(これは趣味。その場で抽出しても勿論構わない) リスト範囲は $A$1:$E$9001 検索条件範囲は $J$1:$K$5 抽出範囲は $M$1 として実行する。
- mshr1962
- ベストアンサー率39% (7417/18945)
回答が 氏名 くじ番号 購入枚数 蘇我昭宏 18組559980 100 でいいなら、まず くじ番号2として =LEFT(B2,3)&RIGHT(B2,6)+C2 で連番の最後の番号を作成 抽出条件は くじ番号 くじ番号2 <=26組361270番 >=26組361270番 <=18組560063番 >=18組560063番 <=*4組314159番 >=*4組314159番 <=**組815963番 >=**組815963番