[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『並び替え』(GS)
並び替えについて教えてください。
A B C ------------------- 1| 11 abc def 2| g3i jkl ------------------- 3| 10 cba sdf 4| wer t1u ------------------- 5| 8 asd erf 6| 157 we3 ------------------- 7| 13 wer tyu 8| ase tyu . . . 上記のような表がありまして、2行ごとに1グループの内容になってます。 A列を基準にして上から昇順に並び替えて下記のようにしたいのですが excelのデータの並び替えを使うとA列に空白があるのでグループが崩れてしまい 思うように並び替えが出来ませんでした。 良い方法があれば詳しく教えてください。 宜しくお願い致します。
このように並び替えたいです。(B,C列はランダムの文字列が入ってます。) ↓ A B C ------------------- 1| 8 asd erf 2| 157 we3 ------------------- 3| 10 cba sdf 4| wer t1u ------------------- 5| 11 abc def8 6| g3i jkl ------------------- 7| 13 wer tyu 8| ase tyu . . .
あと、A列には同じ数字が入ってる場合もあります。その際は、B列の文字列も基準にして並び替えたいです。
windowsXP、excel2003を使ってます。
非常に単純なことなのですが、最初の表でA1:A7をコピーして、 A2セルを選択、形式を選択して貼り付けから、空白セルを無視するにチェックしてOKで、 このような表にします。
A B C ------------------- 1| 11 abc def 2| 11 g3i jkl ------------------- 3| 10 cba sdf 4| 10 wer t1u ------------------- 5| 8 asd erf 6| 8 157 we3 ------------------- 7| 13 wer tyu 8| 13 ase tyu
その上で、A2:A8セルに条件付き書式で、 セルの値が>次の値に等しい> =A1 として、フォントの色を白色(背景色)にすればどうでしょうか。 その後、A列でソートすればご希望のようになりませんか。
>あと、A列には同じ数字が入ってる場合もあります。その際は、B列の文字列も基準にして並び替えたいです。
この辺はどうしたらよいか分かりませんが。 基本機能では無理かもしれません? (sato)
私も別案で、最初の課題だけ。 作業列使います。 例えば、D1に「=A1」、 D2にも「=A1」と入力。 D1からD2を選択した状態でフィルハンドルをダブルクリック これで、D列すべてに式がコピーされます。 表全体を選択した状態で、メニューバーより「データ」>「並び替え」 「最優先されるキー」に「列D」を選択して「OK」
2番目のお題は。。。むずいですね〜 (代奈)
お返事ありがとうございます。早速試してみたのですが、 やはり、A列に同じ数字がある場合、グループが崩れてしまいました。 この場合、何かうまい方法ありますか?
最初、A列をグループごとに結合してみたりしたのですが、結合すると並びかえって出来ないんですね。VBA使えば出来たりするんでしょうか? (GS)
A列に同じ数字がある場合にグループを崩さないためには、 E列に通し番号をつけて、二番目に優先するキーに列Eを指定する。 (代奈)
VBA処理ですが、同じ番号で同じ名前がある場合には、めちゃくちゃになる可能性があります。 こんな面倒なことをするより、シートの構成を考え直したほうが良いのでは?
Sub test() Application.ScreenUpdating = False With ActiveSheet .Columns(1).Insert With .Range("b1").CurrentRegion .Columns(1).Copy .Offset(, -1).Resize(, 1) On Error Resume Next With .Offset(, -1).Resize(, 1) .SpecialCells(xlCellTypeConstants, 1) _ .FormulaR1C1 = "=text(rc[1],""00000"")&rc[2]" .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=r[-1]c&rc[2]" End With Err.Clear End With .Range("a1").CurrentRegion.Sort key1:=.Range("a1"), header:=xlNo .Columns(1).Delete End With Application.ScreenUpdating = True End Sub (seiya)
お返事ありがとうございます。
代奈さんへ 通し番号って、具体的にはどのように付ければいいんでしょうか? 詳しい説明をお願いしても宜しいでしょうか?
seiyaさんへ A列が同じで、B列では同じ文字列が無ければ大丈夫でしょうか? 構成は、お客様から来ているフォームにこちらの情報を打ち込んで並び替えて送りなおす為かえることが出来ないんです。
(GS)
> A列が同じで、B列では同じ文字列が無ければ大丈夫でしょうか? 試してみてください。(seiya)
seiyaさんへ 実物の表に当てはめようと思ったのですが、実際の表ではA列に同じ数字があった場合、 B列でなくてC列を優先するのとC列が2行目に判断する文字列があります。 自分で修正して使わせてもらおうと思ったのですが、難しくてよくわかりませんでした。実物の表を公開しますので直していただけませんでしょうか? お手数ですがお願い致します。 http://proxy.f2.ymdb.yahoofs.jp/users/bd5259d7/bc/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/%a5%b5%a5%f3%a5%d7%a5%eb.exl.xls?bctlY6DBiLYxPzV0
(GS)
> 通し番号って、具体的にはどのように付ければいいんでしょうか?
E1に「1」と入力、E2に「2」と入力。 E1からE2を選択した状態でフィルハンドルをダブルクリック。 (代奈)
私のやり方だと、こうなりますね。(代奈)
A B C D E C/NO STYLE NO.
23 CASE 23 17 S1-3-zxc-012-A 23 18 24 CASE 24 1 S1-3-zxc-012-A 24 2 25 CASE 25 7 S1-3-zxc-012-A 25 8 26 CASE 26 21 S1-6-zxc-013-A 26 22 27 CASE 27 11 S1-6-zxc-013-A 27 12 28 CASE 28 3 S1-6-zxc-013-A 28 4 29 CASE 29 13 S1-6-zxc-013-A 29 14 30 30 5 S1-3-zxc-272-A 30 6 30 30 9 S1-3-zxc-257-A 30 10 30 CASE 30 15 S1-6-zxc-013-A 30 16 30 30 19 S1-3-zxc-258-A 30 20 30 30 23 S1-3-zxc-271-A 30 24
例題とまるっきり違うじゃないですか!
Sub test() Dim x As Long Application.ScreenUpdating = False With ActiveSheet .Columns(1).Insert .Range("a3").FormulaR1C1 = _ "=text(rc[1],""00000"")&r[1]c[3]" .Range("a4").FormulaR1C1 = _ "=r[-1]c&rc[3]" x = .Range("d" & Rows.Count).End(xlUp).Row With Range("a3").Resize(2) .AutoFill .Resize(x - 2) End With .Range("a3").CurrentRegion.Sort key1:=Range("a3"), _ key2:=.Range("d3"), header:=xlNo .Columns(1).Delete End With Application.ScreenUpdating = True End Sub (seiya)
結果
C/NO STYLE NO.
23 CASE S1-3-zxc-012-A 24 CASE S1-3-zxc-012-A 25 CASE S1-3-zxc-012-A 26 CASE S1-6-zxc-013-A 27 CASE S1-6-zxc-013-A 28 CASE S1-6-zxc-013-A 29 CASE S1-6-zxc-013-A 30 S1-3-zxc-257-A 30 S1-3-zxc-258-A 30 S1-3-zxc-271-A 30 S1-3-zxc-272-A 30 CASE S1-6-zxc-013-A
お返事ありがとうございます。 代奈さんへ C列の優先順位が合いません・・・。やっぱり、通常の並び替えだと難しいんですね。 seiyaさんのVBAを使ってやってみます。せっかく考えて頂いたのですが申し訳ありませんでした。 ありがとうございます。
seiyaさんへ 例の書き方が良くありませんでした。申し訳ありませんでした。 結果は完璧にできてます! 早速、試してみたいと思います。 ありがとうございました。
(GS)
>せっかく考えて頂いたのですが申し訳ありませんでした。
案が採用される、されないは重要ではありません。 後々、似たような悩みを抱えた方が単語検索等でこのようなスレッドを見つけ、 このような発想を応用されればよいという動機で書き込んでいます。 私がいつもそのようにして助けられているように。 (代奈)
↑ ヒューッ(これ口笛の音) ナイスレスポンス! (名前書かれへん)(笑
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.