
こんにちは。
今、ある表の並べ替えの問題で悩んでいます。
(並べ替え、オートフィルタ、条件付書式もやってみましたが、
自分ではできませんでした;;)
その表とは、在庫品のデータの入力された表なんですが、
A B C D E
01-0023 M1 完了 MBC01 2000/01/02
01-0043 M2 未 MBC02 2003/03/02
01-0123 M1 完了 MBC01 2006/01/02
となっているとします。
並べ替えでも、ある時は”A”項目を昇順で、
またある時は”E”項目を降順で、見てみたいとします。
この場合によっては違う項目をキーに並び替えたい場合、
ボタン等をつけるなどして、アクセスのフォームのように
押せば、その”A”なら”A”をキーに昇順で並び替えられ、
”E”なら”E”をキーに降順で並び替えられる。。。という
夢のような方法があるのでしょうか?
オートフィルタだと、抽出になってしまいますし。。。
2つのシートを作成して、その都度実行する方法ではない、
その時々で違う並び替え方法ってありますか?
できれば、元の表は並び替えず、シート参照をしてみたいと思っているのですが、無茶ですか?
どなたか教えてください、お願いします。。。。。
No.3ベストアンサー
- 回答日時:
実用で使ったことはありませんが、今考えてみました。
マクロを使えばできそうです。
とりあえず、降順昇順は置いといて、指定したセルの昇順に並べることを考えました。
コマンドボタンをSheet1に1つ貼り付けます。そのクリックイベントに
Private Sub CommandButton1_Click()
Range("A1:C10").Sort Key1:=Range(Range("F1")), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
と入れます。
(A)F1セルに、A2やB2やC2のように、列を表す文字列を入れて、
(B)ソートするセル範囲を範囲指定し、
(C)コマンドボタンをクリックすると、その列で昇順に並べ替えられます。
上記は、並べ替えのマクロの記録をとり、極く一部改造したものですから作りやすいでしょう。
>元の表は並び替えず、シート参照をしてみたいと思っているのですが・・
これはVBAで自動でシートコピーをとって、上記のようなコードをいれれば可能なように「見え」ます。
しかし文字通りではできません。
色々できないかという、疑問は良いですが、VBAでもできるようにならないと、人に答えをもらうことはできても、自分ではできないわけで、できるといえるのかどうか。
この回答への補足
マクロとか使うとは思ってなかったんですが、条件付書式のような便利なツールがあれば。。。と思って質問しました。
VBAを使用した事は昔にあったぐらいだったので。。
教えていただいたように、そのままコピーしましたがエラーで使用できませんでした。。
『
Private Sub CommandButton1_Click()
Dim Msg
' エラーが発生したら、エラー メッセージを作成します。
On Error Resume Next ' エラーのトラップを留保します。
Err.Clear
Err.Raise 6 ' "オーバーフロー" エラーを発生させます。
' エラーの発生をチェックした後、メッセージを表示します。
If Err.Number <> 0 Then
Msg = "エラー番号 " & Str(Err.Number) & Err.Source & _" でエラーが発生しました。"
& Chr(13) & Err.Description
MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
End If
Range("A2:W798").Sort Key1:=Range(Range("A2")), Order1:=xlAscending, Header:=xlGuess, _
ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, Sortmethod _
:=xlPinYin, dataoption1:=xlSortNormal
End Sub
』
というのが現状です。。
そのまま(あ、勿論セルの範囲とか、キーとかは直しました)、コピーがいけなかったのでしょうか?
No.2
- 回答日時:
自動?
もしかして私が質問の意図を読み違えてるのかな?
バーにあるAZ↓・ZA↓での並び替えではないのかな?
例えば、B列を昇順で並び替えるときにB列のどこかのセルを選んでAZ↓で並び替えるという意味で受け取ってましたが、違いますか?
違う場合はごめんなさいです。
あと
>元の表は並び替えず
の意味も気になってはいたんですが・・・。
この回答への補足
すみません、ややこしすぎて。。。
普通の並び替えではなくて、ある表を作成済みですがデータは日々更新のものがあるとします。。
そのデータは色々な場合に使用するため、ある特定のキーで並び替える必要があるのですが、それが2通りあるのです。
それを、毎回、毎回選択して並び替えというのはデータが多くなってきたので、
アクセスのフォームのような感じの、ボタンを押せば(1)番目のキーで並び替えが実行されて、違うボタンを押せば(2)番目のキーで並び替えが実行される。。。という、手間を短くしたいなぁと思ってることです。
ただ、エクセルにフォームなんてないし、自動(というか、半分手動?)に出来たら。。。と思ったのです。
すみません、質問の仕方がややこしいですね。。
No.1
- 回答日時:
普通は出来ますよ。
ただ表の中に不都合があると出来なくなります。
空白が多かったり結合セルあったりする場合等。
見出しが原因で出来なくなる場合もあるようです。
見出しが原因の場合は、見出しとデータの間に1行データの無い行を入れると並び替えが出来るようになるかもしれません。
データ内に結合セルがある場合は結合の解除で出来るようになると思います。
私が思い当たる原因はその辺ですね。
この回答への補足
回答ありがとうございます。
自動並び替えは出来ますか?
出来ると聞いてホッとしました。
出来れば、方法も教えていただけないでしょうか?
今のところ、どうやったらいいのか、普通の並べ替え以外では
思いつきません。
回答お待ちしています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- その他(ソフトウェア) Googleスプレッドシートについて 5 2022/05/07 11:46
- Excel(エクセル) オフィスをLibreOfficeからmicrosoft 2013に変えました。 1 2022/05/09 00:28
- その他(Microsoft Office) 逆順 3 2023/08/24 09:30
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- Excel(エクセル) DATEDIFで作成した勤務年数の並べ替えがうまくいかない 3 2023/07/31 17:09
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
Excelのフィルター後の一番上の...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excel ウインドウ枠の固定をす...
-
Excel グラフのプロットからデ...
-
罫線の斜線を自動で引くマクロ
-
excel セルの結合を条件付で自...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルのセルに指定画像(.jpg...
-
EXCELマクロを使い、空白行では...
-
A1に入力された文字列と同じ文...
-
結合されたセルをプルダウンの...
-
エクセルVBAで、INSERT文を生成
-
エクセル マクロ オートフィ...
-
エクセルVBA 最終行を選んで並...
-
エクセルで、自動的に並べ替え...
-
EXCELで最後の行を固定
-
連続データが入った行の一番右...
-
Excelにて、'C43C410' のように...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
エクセル マクロ オートフィ...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
excelのデータで色つき行の抽出...
-
アクティブになっている行をマ...
-
連続データが入った行の一番右...
-
Excel ウインドウ枠の固定をす...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
おすすめ情報