• 締切済み

ソートした文字を別セルに表示する

Excel2003にて Excelで作成したリストで オートフィルタでソートを掛けたとき ある文言の行のみ表示されます。 そのとき、選択したソートキーを全く別のセルに表示することは可能でしょうか? たとえば、 A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 というのは可能でしょうか? もしくは、 A5で選択した文言でA10~H50をソートする。 というのはVBAでプログラム作成可能なのでしょうか? 数式もしくはプログラムにお心あたりの有る方、回答お願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

これは両方とも無理でしょう。 >オートフィルタでソートを掛けたとき >A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 の意味がわからないが。 ーー VBAの方で言いますと (下記は列見出し文字列を指定し、その列でソートならできるということ) 質問の通りそのままはできないと思う。 >たとえば、 A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 というのは可能でしょうか? のバリエーションです。 (B9が住所なのか年齢なのかは人間が知っているか、見出しが年齢だから年齢でソートしたというだけで、コンピュターは人間が指定した列でソートするだけです。その中身内容を割り出すのは、人間がそう仕組むからできるだけです。) 並べ替えの操作をして「マクロの記録」をとると判りますが Range("A1:S60").Sort Key1:=Range("Q1"),・・ と、列(他の例では行もあるが)を指定するようになっています。 Q1という1つのセルを表した表現ではありますが、その中から列情報を取り出してエクセルは使っています。 Q1のセル内容とは関係がありません。 例えばQ1セルに、「住所」という文字列が入っていて、Q1を指定したら、「住所」という「見出しのある列」でソートしたければ、「住所」という見出しのある列をプログラムで割り出さないとなりません。 例えば 氏名 住所 電話 年齢 山田 東京都 03- 34 佐藤 大阪府 06- 24 鈴木 福岡県 09- 56 H1に「住所」(見出しと完全一致した文字列で住所と)と入れる ーー Sub test01() x = Application.WorksheetFunction.Match(Range("H1"), Range("A1:D1"), 0) MsgBox x Range("A1:D60").Sort Key1:=Cells(1, x), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal End Sub 結果 氏名 住所 電話 年齢 佐藤 大阪府 06- 24 山田 東京都 03- 34 鈴木 福岡県 09- 56 見出し住所列でソートできた。

tegeran
質問者

お礼

回答ありがとうございます。 No.1の方の参照URLを元に解決します。

  • kawajisan
  • ベストアンサー率30% (53/171)
回答No.2

アイディア A案:フィルターしたデータをコピーし貼り付ける。 B案:VBA B案はマクロの記録で、A案を実行する。

tegeran
質問者

お礼

アイディアありがとうございます。 No.1の方の参照URLを元に解決しました。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

ソートという言葉を誤用されているのではないでしょうか。 参考URLの様な事をされたいのだと受け取りましたが、いかがですか。 外していたらすみません。

参考URL:
http://www11.plala.or.jp/koma_Excel/contents6/mame6042/mame604202.html
tegeran
質問者

お礼

確かにソートを誤用していました。 失礼しました。 参考URLの添付ありがとうございます。 早速試してみます。

関連するQ&A

  • エクセル オートフィルタで選択したセルと同じ内容を表示させたい

    エクセルで表を作成しています。 H列に担当者を入力してあって、その担当者ごとにプリントアウトします。 その時にB2のセルにオートフィルタで選択した担当者名を表示させてプリントアウトしたいのです。(H列は印刷範囲から外します) =H3 の数式だとフィルタでH5のセルの担当者を選択しても、H3の担当者のままです。 フィルタで担当者を変えていくごとにB2のセルに担当者名が表示されるようにはできますでしょうか? ご教授お願いします。

  • 常に「空白以外のセルを表示」したい。

    こんにちは。 A列には別のsheetを参照して表示させています。 そのA列をオートフィルターで「空白以外のセルを表示」していますが、参照セルの内容が変わってもオートフィルターのドロップダウンを選択しないと「空白以外のセルを表示」してくれませんが、毎回選択しなくても、常にその様に表示している設定にならないでしょうか。 良い方法があれば教えて下さい。 WinXP Excel2003です。

  • 条件を付けてセルに別の文字列を表示させるには

    Excel2010 です。 シート2のA1のセルに「T」 と入力したら、シート1のA1セルに「TANAKA」と表示され、 「S」と入力したら、「Suzuki」と表示されるようにしたいのですが、どのような 数式をいれたらよいでしょうか。 おしえてください。

  • UsedRangeを使ってソートすることは可能?

    UsedRangeを使ってソートすることは可能ですか? エクセルですが 学年  組  出席番号 2    A    1 1    B    2 と言うデータがあり、 これにフィルタをかけつつ、A列で昇順に並び替えるVBAを作ってるのですが Sub さんぷる() オートフィルタをかける Range(Cells(1, 1), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column)).AutoFilter UsedRange.Sort Key1:=Cells(1, 1), order1:=xlAscending End Sub とすると、 UsedRangeでコンパイルエラーになるのですが どうすればよろしいでしょうか?

  • VBA 表の1つ下のセルを選択する

    EXCEL2003のVBAを使っています。 オートフィルタで抽出させた表があります。 入力されているセルの、1つ下のセルを選択するにはどうしたら良いでしょうか。     A 1  あああ  2  あああ  5  あああ  1行目から19行目までの列の中で、"あああ"だけをオートフィルタで抽出している 10  あああ  14  あああ   16  あああ  20   ※ ←ここを選択したい。 Range("A65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select これだとA17のセルが選択されてしまいます。 表全体の1つ下のセルを選択する方法はあるでしょうか?

  • オートフィルタでソートしたセルにデータを貼付ける

    こちらの過去の質問等調べましたが、以下のようなケースは『できない』という結論かどうか、念のため確認させて下さい。趣旨はオートフィルタでソートされたセルに、予め作成された別のデータを貼り付けられるか?ということです。当社のexcelは2002と2010が使用出来ます。今、行っている作業を簡単にご説明すると以下の通りです。 <前提> シート1に、会社の全支店名が入ったデータがあり、シート2に各支店で取扱った契約の明細があります。シート2の明細をピポットでまとめ、契約が出た支店については契約件数をシート1に転記し、どこの支店で契約が何件出て、契約が出ていない支店はどこか?を分かるようにしたい。 <やりたい事> シート1と2で支店名が重複すれば、その支店は契約が出ているということなので、シート1に重複サインを表示させ、重複している支店をオートフィルタでソート。シート2のデータをそのまま貼り付けるのが効率的かと思いますが、オートフィルタでソートされた部分のみに別シートのデータを貼り付けることができるか? 以上、よろしくお願いいたします。

  • オートフィルタとドロップダウンリストの連動について

    Excel2003を使用しています。 添付の表で 黄色いC4セルにはH2~H5の記号のドロップダウンリストが設定されています。 この状態で、たとえば表AのNo.列で1をオートフィルタで選択したときに、 C4も連動する形で自動的に「■」を表示させたいのです。 2を選択した場合なら「●」を、3を選択したら「△」をという感じです。 VLOOKUPと何かの関数を組み合わせるのではないと思いましたがうまくいきません。 アドバイスよろしくお願いします。 可能であればマクロやVBAではなく関数でできればうれしいです。 また逆バージョン(「■」を選択するとオートフィルタで「1」が自動的に選択される)でもかまいません。 どうぞよろしくお願いします。

  • Excel で別のセルの数式を表示

    Excel 2003 で、あるセルの数式を別のセルで表示させることはVBA無しで出来ますでしょうか? A1に「=A2」とあったときに、A3にA1を引数とした何がしかの関数を用いることで「=A2」と表示させる、というイメージです。

  • Excelのオートフィルタで選択⇒別セルへ

    Excelのオートフィルタで選択⇒別セルへ 顧客名と担当者氏名が紐付いている表を作成しています。 一人の担当が複数の顧客を担当しているためオートフィルタを設定しており、 担当名を選ぶと該当の顧客が出てくる感じの表です。 その表の上部に、「○○様 以下顧客リストとなります。ご対応願います。」 のような感じで、オートフィルタで担当を選ぶと ○○の部分に同じ担当名が出てくるようにしたいのですが、 関数で行うことは可能でしょうか? また特に誰も抽出していないとき(すべて表示)は、 ○○には何も表示されないようにしたいです。 無知で申し訳ございませんが、詳しい方ご教授いただけますと幸いです。 宜しくお願い致します。

  • エクセルでソートをかけたときの印刷がうまくいかない。

    エクセルで大きな表があり、オートフィルタで必要な部分のみが表示されるようにしたときに印刷ボタンを押すと、紙全面に表が表示されず、途切れ途切れになってしまいます。 どうも、オートフィルタ(ソート)をかける前に1ページ目にあった部分は1ページ目に、3ページ目にあった部分は3ページ目に印刷されてしまうようです。 ソートをかけた時の画面そのままに印刷するにはどうすればよいのでしょうか? よろしくお願いいたします。

専門家に質問してみよう