• ベストアンサー

入力規則とオートフィルタ

宜しくお願いします。 例 シート2           A     B      C      1  品名   品種  業者名       2      3      .      .     400 2~400行まで品名・品種・業者名が入っています。 これをオートフィルタ→業者名で絞り、その絞ったデータだけをシート1の任意のセルに入力規則で選べるようにすることは可能でしょうか? エクセル2003 使用 VBA使えません^^;    

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> 途中までは正しく表示されるが半分以降が #N/A になってしまう。 例えばB業者をフィルタで絞った場合、オートフィルタで絞られた結果 はF列に順に並びますが、A業者の部分(2~50行目)は非表示になりま すので、この部分が隠されてしまっているからです。 > エラーや0値がF列に返される。 400行のうちオートフィルタの抽出結果が49件だとしますと、F2:F50 に 結果が並び、F50:F400 は該当無しでエラーなどになります。 そのため、入力規則の参照範囲の式を =OFFSET(Top,0,,MAX(Area)) と して、F列の Top(F2)~「D列で SUBTOTAL 値の最大値のある行まで」 表示するようにしています。 入力規則のリスト内表示については問題ないはずですが、前回の回答で 「設定が済んだら、D~F列は非表示にしたほうが見栄えがよい」と書 いたのは、そういう表示になるからです。 もし、D~F列を非表示にしたくないというのでしたら、E2:F400 に次 のような条件付書式を設定されたらいかがでしょうか。  数式が =ISERROR(E2)  で、文字色を「白」

その他の回答 (3)

回答No.4

#3の訂正(?)です。 条件付書式で文字色を白にしても、部分的にしか表示されないのは、変ですね。 やはり、列を非表示にするか、条件付書式を使わずにD~F列全体の文字色を 白くしてしまったほうがよいでしょうね。

mamunopapa
質問者

お礼

入力規則で望んだ結果になっていました。 おっしゃっていることが理解できました^^; 何度もありがとうございました^^

回答No.2

私も通常は#1さまのリンク先の方法を用いていますが、とりあえず ご要望のような内容で考えてみました。 C列(業者名)のオートフィルタの抽出結果から、A列(品名)の部分を Sheet1 の入力規則リストに表示します。 Sheet2      A      B      C     D    E    F   1  品名   品種  業者名[▼]    2   3   .   .  400 D~Fを作業用として使用します。以下の設定が済んだら、この3列は 非表示にしたほうが見栄えがよいでしょう。 <数式入力と名前定義> 見にくいですが読み取ってください。 (_ _*) D2 =SUBTOTAL(3,$C$2:C2) で下方にドラッグコピーします。  この範囲(D2:D400) に Area という名前を定義します。 E2 =IF(COUNTA(Area)=MAX(Area),D2,MATCH($F$1,INDIRECT(ADDRESS(E1+1,3)):$C$400,0)+E1) で下方にドラッグコピーします。 F2 =IF(COUNTA(Area)=MAX(Area),INDIRECT(ADDRESS(D2+1,1)),INDIRECT(ADDRESS(E2,1))) で下方にドラッグコピーします。 その後 F2 だけを選択して Top という名前を定義します。 F1 =INDIRECT(ADDRESS(MATCH(1,D1:D400,0),3)) <入力規則> Sheet1 のリスト定義では、参照範囲として次の数式を入力します。  =OFFSET(Top,0,,MAX(Area))

mamunopapa
質問者

補足

回答ありがとうございます^^ #N/Aか0がF列に返されてしまいます。 業者名 A業者 C2~C50 B業者 C51~C100 C業者 C101~C150 ・ ・ ・ 業者名はソートで並んでいるのですが昇順で並べてあってC2~C50までのA業者は正しく表示され、それ以降(以外)の業者を選ぶとエラー(#N/Aか0がF列に返される又は途中までは正しく表示されるが半分以降が #N/A )になってしまうのです;; なぜなのでしょうか? これが解決すれば望み通りの結果が得られるのでどうか宜しくお願いします┏o 

  • nobu555
  • ベストアンサー率45% (158/345)
回答No.1

オートフィルタを使用する必要はありません。 下記のURLを参考にしてください。 http://www.kenzo30.com/ex_kisopoint/onepoint_sonota3.htm#Q4

参考URL:
http://www.kenzo30.com/ex_kisopoint/onepoint_sonota3.htm#Q4
mamunopapa
質問者

お礼

回答ありがとうございます。 見てみたのですがこれはA列で選んだ物からそのA列に該当する物をB列に表示して選ぶということなのでしょうか? 出来れば、A列のドロップダウンで選ぶとさらにドロップダウンがでてその中から選べるようにしたいのです。 ここのサイト内を検索してみたのですがVBAを使用しないと出来ないと書いてあったのですが・・・VBAについては関数よりも???の状態でして┏o  で、VBAが使えないので他のシートで業者を絞っておいてその品名だけをシート1の入力規則で選べないかと思ったのです^^;

関連するQ&A