• ベストアンサー

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

宜しくお願いします。 例 シート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

  • オートフィルタについて(再)

    excelにて下記のようなファイルを作成しました。 項目にてオートフィルタを実行し、抽出したい項目を 選択するのですがうまく抽出できません 1 品名 サイズ 員数 2 A  100  300 3    200  400 4 B   500  600 (品名2行目、3行目はセルの結合を実施しています。) ↓品名にてオートフィルタを実施 品名 サイズ 員数 A  100 300 2行目が抽出されない。 うまく抽出できる方法ありますでしょうか? よろしくお願いします

  • エクセルの入力規則にかわるもの

    いつも大変お世話になっております。 エクセルの入力規則をよく作成し使用していますが、表示か8個までで8個以上は▼などで選択していますが、できれば、例えば、20行ある場合20行表示させたり、50行ある時は20行くらいずつ表示をさせたいです。 自分なりに調べたら、フォームコントロールやコンボボックスなどがでてきました。ですがイマイチやり方がわかりません。 やりたいことは、シート2に入力規則のリスト用に品名など名前を付けて、シート1のセルA3に、入力規則→リスト→名前、など登録してあります。シート1のセルA3で選択するときに、シート2で【名前】と登録したものがでます、シート1のセルA3を選択した際に名前がすべて出したいです。ほかには、【品名 1】と【品名 2】もシート1の決まったセルに半分くらいずつ表示させ選択したら選択したものが表示されたいです。 説明が上手くなくすみません。 フォームコントロールなどでできるようでしたら、ご教授お願い致します。

  • 入力規則とフィルター

    エクセルで質問ですが、マクロ、VBAにて できるかどうか判らない状態での質問になりますが ご理解願います。 シート2の1行目には表題、2行目から 表題に準じたデータが入力されています。   A     B     C 1 顧客名   日付   取引内容     シート1にはA1、A2、C2に表題が入っております。   A     B     C     D 1 顧客名    2 日付         取引内容 シート1のB1を選んだ際に、シート2のA列を参照したデータから リスト選択できる様にしたいと考えています。 その際、シート1のB2にて顧客名を選択した時点で その顧客名を条件としたオートフィルタ―を シート2で掛けたいのですが、ご指導願います。

  • オートフィルタの使用にチェックを入れても使えない

    EXCEL2010を使用しています。「シートの保護」をかける時「オートフィルタの使用」にチェックを入れても、オートフィルタが使用できません。シートの保護を解除すると使用できます。 EXCELには「入力規則のリスト」や「VLOOKUP」「INDEX」「MATCH」関数などが入っていますが、シートの保護をかけていない状態では、オートフィルターは正しく抽出できています。 表の中には空白セルがありますが、シートの保護をかけていない時はオートフィルタは使用できています。シートの保護をかけたときには空白セルがあるとオートフィルタは使用できないのでしょうか? 関数が入っているセルに誤入力されたくないので、シートの保護をかけてその際に「オートフィルタの使用にチェック」を入れて有効にしようとするのですが、全く反応いたしません。 対処方法をどなたかご存じの方はぜひお聞かせ下さい。

  • オートフィルターによって、抽出したセルにだけペーストしたい。

    例えば、 5行ごとの世帯表があります。 A列には氏名が入力されています。 2人世帯は2行しか使いませんので、下3行は何も入力されていない行です。 つまり、10世帯分で100行あり、その中に合計38名分の氏名が入力されています。 列を挿入して、B列に新しい列を作りました。 この列に、別シートの同じ世帯員の生年月日が入力された列(ブランクの無い38行の38個のセル)を貼り付ける場合、どのように貼り付けるのでしょうか。 オートフィルターで、A列の空白セルを除いてから貼り付けたら、オートフィルター解除後、空白セルにも貼り付いてしまったので、ずれてしまいました。 オートフィルターで、省いた(隠した)セルに貼り付かないように貼り付けるにはどうすればいいのでしょうか。

  • エクセル/データの入力規則/フィルターが効かない

    お世話になります。 社員の人事データに係る20列×200行のエクセルシートがあります。 ある列に「データの入力規則」にて「入力値の種類」をリストにし、「元の値」の箱の中に3個の選択肢(例えばA,B,C)をカンマで区切って入力し、その列の入力の際にその3個の選択肢をプルダウンで選択できるようにしてから、200行(200個のセル)にAまたはBまたはCの入力をしました。 その後、1列目の項目の行にフィルターをかけ、A(またはBまたはC)が入力されたデータのみ表示させたいのですが、上から150行目まではちゃんとフィルターが掛かるのですが(即ち、A(またはBまたはC)が入力されたデータのみが表示される)、151行目以降はフィルターがかからず、A、B、C全てのデータが表示されてしまいます。 また、この時、エクセル左端の行番号の数字の色が、150行目までは青色ですが、151行目以降は黒色となっており、151行目前後で何かが違っているようです。 但し、自分自身では何かを変えたつもりは全くなく、何故151行目以降でフィルターが効かないのかが全く分かりません。 また、上記と全く同じこと(「データの入力規則」設定後に入力+フィルター)を別のエクセルファイルで行いましたが、そこでは200行全てがちゃんとフィルターが掛かっています。 何故151行目以降でフィルターが効かないのでしょうか? また、解決策は何かあるでしょうか?

  • エクセルのオートフィルターの使い方

    エクセル2010で1000行程度の表からオートフィルターで必要な情報を抽出しているのですが、該当する条件を▼セルで探すのも面倒なので、所定のセルに条件を入力したらオートフィルターで抽出できる方法があれば教えてください。

  • オートフィルターの使い方

    マクロでオートフィルタを使おうと思っているのです。 作成したリストの中で、日付でフィルタしようと思い 下記を作成してみましたがうまくいきません。 Worksheets("シート名").Range("A2").AutoFilter Field:=30, Criteria1:="<=2004/9/30", Operator:=xlAnd = 1, Criterial2:=">=2004/9/1" 条件と致しましては任意の期間(例:2004/9/1~2004/9/30)を抽出条件としたいのですが・・・ 又、セルには空白も存在します。 宜しくお願いいたします。

  • EXCEL オートフィルタについて

    excelにて下記のようなファイルを作成しました。 項目にてオートフィルタを実行し、抽出したい項目を 選択するのですがうまく抽出できません 品名 サイズ 員数 A  100  300    200  400 B   500  600 ↓品名にてオートフィルタを実施 品名 サイズ 員数 A  100 300 2行目が抽出されない。 うまく抽出できる方法ありますでしょうか? よろしくお願いします

  • オートフィルターで一つずつ抽出したものを....

    Bの行にオートフィルターをかけ、列の11で一つずつ抽出したものをコピーし、新規シートに貼り付けたいのですがどうやれば良いですか? 見出し『商品』として抽出されるもの全て新規シートにそれぞれコピーしたいです。 VBAの場合、初心者ですのでわかりやすくお願いします。 わかる方には面倒な事ばかりで申し訳ありませんが宜しくお願いします。 エクセル2010です。

専門家に質問してみよう