- ベストアンサー
オートフィルタの抽出後の値を取り出す方法
オートフィルタを使用して顧客情報を取り出しています。 取り出す結果は常に1レコードです。 列数がたくさんありますが、そのうちのC列の顧客名だけを、 エクセルの表の一番上に表示されるようにすることってできますか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ご質問の趣旨を取り違えていましたらスミマセン。 「オートフィルタをかけた状態で、(見た目の)最初のレコードの顧客名を取得して、(例えば)テーブルの上方にでっかいフォントで表示したい」 といったことでしたら、 subtotal(3)で見た目の行位置をナンバリングして、index(match)やoffset(match),vlookupなどで引けば可能です。 例えば、 4行:見出し行 5行~:データ C列:顧客名列 Z列:作業列 A1セル:(フィルタ後の最初の)顧客名を表示するセル とした場合 Z5セル =SUBTOTAL(3,$C$5:C5) としてレコード数分フィル。 (カウントする列は顧客名列でなくてもOKですが、必ずデータの入力される(空白セルのない)列を指定) A1セル =OFFSET($C$4,MATCH(1,$Z$5:$Z$1000,0),0) ($Z$1000の部分はレコード数に応じて適当に) といった具合です。
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
検索条件の入力セルが必要ですがDGET関数を使えばどうでしょうか? http://office.microsoft.com/ja-jp/excel/HP052090591041.aspx
- michi_001
- ベストアンサー率32% (21/65)
No.1です。 では、考えを改めまして・・・ 選んだ顧客名が、表のタイトルに来るようにする、みたいな考えでよいのでしょうか? それなら、隣のシートに移動して、ツールバーの上で右クリック→「フォーム」を選択します。 その中に、マウスを合わせると、「コンボボックス」と表示させるものがありますので、それをクリック。 マウスが細い十字になりますので、テキストボックスを作る要領で設定します。 そこで出来たコンボボックスをダブルクリック→「コントロール」タブで、「入力範囲」を選び、顧客名簿のシートを選び、C列の顧客名を上から選択してください。 次に、「リンクするセル」をA1セルを選んで設定してください。これは、数字が1から表示されますので、必要なければ、フォントの色を白くするなどして見えなくすることも可能です。 次に「プロパティ」タブで、「オブジェクトを印刷する」のチェックをはずしてください。 で、「OK」ボタンをクリック。 一度、範囲指定を解除してから再びクリックすると、顧客名が一覧で出てきます。 ここで、顧客名を表示させるところに以下の計算式を入力してください。 =INDEX(Sheet1!顧客名の範囲,A1) (=INDEX(まで打ったらマウスでSheet1の顧客名の範囲を選んでください) そうすれば、希望のところに顧客名が表示されるようになります。 かなり長くなってしまって読みづらいかもしれませんが、試してみてください。
- michi_001
- ベストアンサー率32% (21/65)
ごめんなさい。。。いまいちつかめないのですが。。。 ここで言う「顧客情報」とは、「名簿」のようなもので、 C列に顧客名が入っていて、それをオートフィルタで抽出している、ということでしょうか? 例えば、A列にコードのようなものが入っているなら、 VLOOKUP 関数が使えます。 隣のシートのA1セルに該当コードを入力して、 B1セルに、=VLOOKUP(B1,Sheet1!A:C,3,FALSE)と入力します。 すると、コードを入力したら、顧客名を表示することが出来ます。
補足
ご回答ありがとうございます。 顧客を探すことが目的ではなく、 選んだものを見出しとして使用するような感じです。 わかりづらくて申し訳ありません。
補足
回答ありがとうございます。 タイトルだけですといいのですが、 売上情報その他でフィルタをかけた結果の中で、 その抽出されたレコードがどの顧客かがわかるようになれば。。。 という内容です。わかりづらくて本当にすみません。