• ベストアンサー

枠の左と真ん中と右の数字を分けて昇順に並べる方法

このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、7列×5行の中に数字が1~37まであり、  重複数字を含んでおり、それが4つ(A,B,C,D)あります。  その中で、1列~2列、3列~5列、6列~7列と数字を分けて下段に  「〇中」、「〇左」、「〇右」として左から右へ昇順に並べます。  上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・7列×5行の中にある数字の並びは毎回異なります。   ・枠線や塗り潰しの橙色や緑色や青色は、説明のために付けているだけです。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.1

以前のコードを今回に合わせたものです。 Sub Test() Dim mRng As Range Dim i As Long, j As Long, k As Long Dim mR As Long, mC As Long Dim x As Double j = 0: k = 0: mC = 0: mR = 0 Application.ScreenUpdating = False For i = 1 To 4 mC = 0 For Each mRng In Range("C1:E5").Offset(j, k) Range("B14").Offset(mR, mC).Value = mRng.Value mC = mC + 1 Next Range(Cells(14 + mR, 2), Cells(14 + mR, mC + 1)).Sort _ Key1:=Cells(14 + mR, "A"), Order1:=xlAscending, Orientation:=xlSortRows mC = 0 For Each mRng In Range("A1:B5").Offset(j, k) Range("B18").Offset(mR, mC).Value = mRng.Value mC = mC + 1 Next Range(Cells(18 + mR, 2), Cells(18 + mR, mC + 1)).Sort _ Key1:=Cells(18 + mR, "A"), Order1:=xlAscending, Orientation:=xlSortRows mC = 0 For Each mRng In Range("F1:G5").Offset(j, k) Range("B22").Offset(mR, mC).Value = mRng.Value mC = mC + 1 Next Range(Cells(22 + mR, 2), Cells(22 + mR, mC + 1)).Sort _ Key1:=Cells(22 + mR, "A"), Order1:=xlAscending, Orientation:=xlSortRows mR = mR + 1 k = k + 8 If i = 2 Then j = j + 6 k = 0 End If Next Application.ScreenUpdating = True End Sub

sazanami0422
質問者

お礼

お世話になります。 前回のVBAを改修するだけの知恵が無いので質問させていただきました。 ソース実行して得たい結果になりました。 ありがとうございました。

Powered by GRATICA
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kon555
  • ベストアンサー率52% (1761/3379)
回答No.2

 VBA以外の方法です。  Excel365であれば、そのものズバリなソート用関数があります。 https://www.crie.co.jp/chokotech/detail/566/  あとはデータの数が決まっているなら、LARGE関数という『上から数えて◯番目』を抽出する関数でも対応可能です。 https://kokodane.com/kansu_statistics_49.htm

sazanami0422
質問者

お礼

はじめまして。 回答いただきありがとうございます。 EXCELにSORT関数なんてあるのですね。 初めて知りました。参考にさせていただきます。

Powered by GRATICA
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 枠の外と内の数字に分けて昇順に並べる方法

    あけましておめでとうございます。 本年もよろしくお願いいたします。 このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、5列×5行の中に数字が1~31まであり、  重複数字を含んでおり、それが4つ(A,B,C,D)あります。  その中で、赤枠内と外の数字を分けて下段に  「〇外」、「〇内」として左から右へ昇順に並べます。  上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・5列×5行の中にある数字の並びは毎回異なります。   ・赤枠や、塗り潰しの青色や黄色は、説明のために付けているだけです。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 複数行をまとめて縦に昇順に並び替える方法

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、1行×25列の中に数字が1~31まであり、重複して入っています。 これが4行あります。  これをまとめて、縦に数字を昇順に並び替える方法をVBAで実現する方法が知りたいです。  (添付図はわかりやすくするためにセルに色をつけてますが、実際は無くてもOKです。   【注意事項】   ・1行×25列の中にある数字の並び毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 検索値で枠内を検索して一致したら黄色に塗潰す。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、35列×6行の中に数字が1~37まであり、  重複数字を含んでおります。また、AL列とAM列は54行で、  数字が1~37まであり重複数字を含んでおります。  AL1とAM1の2つの値で、35列×6行の中を検索して一致したら  セルを黄色に塗り潰します。これを、AL列とAM列の  最終行(54行目)まで繰り返します。  上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・35列×6行の中にある数字の並びは毎回異なります。   ・枠線や塗り潰しの黄色、検索対象~、検索値~は説明の    ために付けているだけです。   ・AL列とAM列は2つで1つの値として昇順に並んでいます。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 連続する同じ数字のセルの塗り潰しがしたい。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、4行×25列の中に数字が1~31まであり、重複して入っています。  この中にある数字で、同じ数字が縦・右斜め・左斜め(横は無い)のいずれかに該当すれば  その数字のセルを黄色で塗り潰す方法をVBAで実現する方法が知りたいです。   【注意事項】   ・4行×25列の中にある数字の並びは毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 【再】連続する同じ数字のセルの塗り潰しがしたい。

    先程は、質問の添付図が添付されていなかたので再掲載します。 @@@@@@@@@@@@@@@@@@@@@ このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、4行×25列の中に数字が1~31まであり、重複して入っています。  この中にある数字で、同じ数字が縦・右斜め・左斜め(横は無い)のいずれかに該当すれば  その数字のセルを黄色で塗り潰す方法をVBAで実現する方法が知りたいです。   【注意事項】   ・4行×25列の中にある数字の並びは毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 重複数字の数に応じてセルに色をつける。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、1列×25行の中に数字が1~31まであり、  重複数字を含んで昇順に並んでおり、それが4列あります。  1列毎に数字を見て以下の条件にあえばセルを塗り潰します。   2個重複⇒セルを黄色に塗り潰す。   3個重複⇒セルを青色に塗り潰す。   4個重複⇒セルを緑色に塗り潰す。   5個重複⇒セルを赤色に塗り潰す。   上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・1列×25行の中にある数字の並びは毎回異なります。   ・1列×25行の中に重複数字が無い場合があります。(例:A列)   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 同じ数字を2個使用している重複行の数字の出力方法

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  2019/12/08 22:31 に質問No.9687909 として  『同じ数字を3個~4個使用している重複行の塗り潰し2』という質問をさせて  頂き、SI299792様とnishi6様から回答を頂きました。  この時の質問から発展して、『同じ数字を2個使用している重複行の数字の出力  方法』が今回の質問です。添付図のとおり、5列×20行に絞り、2個の数字が  重複していたら黄色でセルを塗り潰し、”重複している行”をG列に書き出す事は  前回の回答から対応できましたが、実際にどの2個の数字が重複しているか塗潰  されたセルでは分かり難い場合があるため、H列~AA列に書き出す方法が知り  たく質問させて頂きます。 以上、よろしくお願いします。

  • 同じ位置(n行m列)にある数字に網掛けをする方法

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】 下記のように5行6列のセルを1つの塊と見て、2つ上下にあるとします。 この上下のセルの1行1列から5行6列まで入っている数字を見比べて、 「n行m列にある数字が同じ数字の場合、その数字を網掛け(又は塗り潰し)する方法」 が知りたいです。 10 11 16 19 28 39 02 04 09 15 24 36 07 08 20 35 37 38 01 05 14 23 33 34 13 21 31 32 42 43 09 16 17 21 25 39 02 15 19 20 36 43 04 11 14 34 38 41 01 08 13 31 37 40 07 12 29 32 33 35 【実行例】・・・02,01,39が同じn行m列にあったため、上下どちらも塗り潰す。 10 11 16 19 28 ■ ■ 04 09 15 24 36 07 08 20 35 37 38 ■ 05 14 23 33 34 13 21 31 32 42 43 09 16 17 21 25 ■ ■ 15 19 20 36 43 04 11 14 34 38 41 ■ 08 13 31 37 40 07 12 29 32 33 35 ◎注意事項   ・5行6列のセルに入る数字は、1~43迄の数字で、重複はありません。   ・使用するエクセルは2010です。   ・数字が一致した場合は、網掛けでも塗り潰しどちらでも構いません。 以上、よろしくお願いします。

  • 左から右に並んでいるデータを右から左に直せる?

    エクセルで横書きで上から下に並んでいる名簿を縦書きで右から左に並ぶように変えたいのです。まずは行と列の入れ替え後、縦書きにしたのですが、それだと左から右に並びます。縦書きだと右から左の方がいいと思うのですが無理でしょうか?

  • 変数を左から昇順に並べる方法

    どなたかご存知でしたらご教授願います。 【質問】 下記の様にA1~J1までに重複しない数字が入っています。 2行下には上の10個の数字から任意の5個の数字を取る様にします。 取った任意の数字を右側に左から昇順に並べたい。 A B C D E F G H I J 5 10 11 7 6 3 32 20 21 43 -------------------------------------   左から昇順に並べたい。 5 10 11 7 6 × × × × ×   → 5 7 6 10 11 × × 11 7 6 × × 20 21 ×  → 6 7 11 20 21 × × × × × 3 32 20 21 43  → 3 20 21 32 43      : 以下、5組の数字を作る。 【注意事項】  ・入力した10個の数字の下段では5個の数字を取得しますが、   下のセルには、5、10、11、7、6なら、   =A1、=B1、=C1、=D1、=E1と入ってます。   尚、×はセルに直接入ってます。  ・使用するエクセルは2010です。  ・A1~J1までは、1~99までの数字が重複無しで入ります。 以上、よろしくお願いします。

専門家に質問してみよう