[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタの選択項目の取得と列取得(VBA無し)』(そら)
いつもお世話になっています。
オートフィルタを選択した際の項目取得(全列)が可能が検討しています。
単独の列の項目取得については、以下の例1関数で可能です。
例1)A列〜H列までデータがありオートフィルタし、C列をフィルタして項目を取得する場合(フィルタ外のセルに以下の式)
=INDEX(C:C,MAX(INDEX((SUBTOTAL(3,INDIRECT("C"&ROW(C$6:C$100)))*ROW(C$6:C$100)),))))
ただし、未選択の際に項目が表示されるため、COUNTAで回避は可能です。
例2)=IF(COUNTA(C$6:C$100)=SUBTOTAL(3,C$6:C$100),"",INDEX(C:C,MAX(INDEX((SUBTOTAL(3,INDIRECT("C"&ROW(C$6:C$100)))*ROW(C$6:C$100)),))))
が、2行目の通り、目的は全行の項目を取得したいため、例えばA列やB列の項目も取得しようとすると、フィルタ未選択列まで項目が表示されてしまいます。(COUNTAとSUBTOTALのため)
こちら例えばC列を選択すればC列の項目のみ、C列をB列を選択すれば同じくCとB列の項目のみが表示できますでしょうか?
※A列〜H列まで上記の数式を入れフィルタし、フィルタした箇所だけ項目が表示される
フィルタの絞り込みしている使用列を取得できる方法がありますか?
尚、今回はVBAは除きます。
以上、宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
何か回答がつかないみたいなんですが… 具体的に想像できないんですけどフィルタオプションで何とかならないんでしょうか? (コナミ) 2018/01/25(木) 10:52
フィルタオプションはユーザ側に操作させる必要があるので厳しいのと、そうであればVBAで対応を選択します。
また、SUBTOTALの103も考え方は同じですので、今回の件は対応できないと考えられます。
例が良くなかったため、簡単に以下に記載いたします。
【例】日時行にオートフィルタ
数式A列分|数式B列分|数式C列分
日時|商品|個数
1/1|りんご|2
1/2|みかん|1
1/3|いちご|3
1/1|バナナ|4
フィルタで1/1と選択すると、数式A列に1/1と表示される。
同じように数式B列、数式C列にもフィルタ表示している最下行のデータが表示される。
それぞれ数式B=バナナ、数式C=4
上記の状態からフィルタしていないB列、C列が数式で表示されることを回避したい(つまりフィルタ列以外は空欄にしたい)という事です。
※今のやり方ではSUBTOTALを使用しているので、他の方法じゃないと厳しいですが、思い付いていないのが現状です
以上、ご教示宜しくお願い致します。
(そら) 2018/01/25(木) 13:45
数式でオートフィルター的なものは作れるので、そちらで対応すればいかがでしょう。
(その代り検索条件が手入力になりリストから選択することはできなくなると思います。
ネットで調べたら出てきそうな気がします。
例)「エクセル 数式でオートフィルター」
(まっつわん) 2018/01/25(木) 14:12
ご記載の通り、検索対象が1つ以上でないとき、Like検索や部分検索であった時に正しく表示が出来ない件は理解しておりましたし、「検索条件」を割り出す意図はありませんでした。
数式でオートフィルターの件も同じですが、上手く伝わるかは分かりませんが、Excelのオートフィルターで項目を選択できる位のレベル層を対象としていましたので、フィルタ項目の簡易表示を関数で実現出来れば・・・との状況でした。
該当列がフィルタしているかどうかが分からないので、当件は実現不可と認識いたします。
回答してくださった方々、ありがとうございました。
(そら) 2018/01/26(金) 17:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.