• ベストアンサー

EXCELで並べ替えってできますか?

例えば5つの数字(1.2.3.4.5)の順列(5!個)をすべて表示させるような方法ありますか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

組み合せを出力するコードを書いてみました。Sheet1で行ってみます。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、Sheet1をダブルクリック。出てきたコードウインドウに、下記コードをコピーして貼りつけます。 シートに戻り、ツール→マクロ→マクロ でKumiawaseJを実行します。 他の組み合わせを出すには、minDTに数字を昇順に、maxDTに数字を降順にセットします。7個の数値まで出してみました。 ここから ↓ Sub KumiawaseJ()   Const minDT = 12345 '最小の組み合せを数値で表現   Const maxDT = 54321 '最大の組み合せを数値で表現   Dim Dt As Long '任意の数値の組み合せ   Dim strDt As String '任意の数値の組み合せを文字にしたもの   Dim L As Integer 'カウンタ   Dim chkFlg As Boolean '判定   Dim rw As Long '行カウンタ   Cells.Clear   For Dt = minDT To maxDT     chkFlg = True '判定値を初期化     strDt = CStr(Dt) '数値を文字に変える     For L = 1 To Len(strDt)       '指定数値以外なら非該当       If InStr(CStr(minDT), Mid(strDt, L, 1)) = 0 Then         chkFlg = False: Exit For       End If       '指定数値が二重に現れたら非該当       If InStr(L + 1, strDt, Mid(strDt, L, 1)) > 0 Then         chkFlg = False: Exit For       End If     Next     If chkFlg = True Then       '満足する組み合せなので書き出す       rw = rw + 1       For L = 1 To Len(strDt)         Cells(rw, L) = Mid(strDt, L, 1)       Next     End If   Next End Sub

lassen
質問者

お礼

すごいです!!ありがとうございます。これがやりたかったんです。 なんか説明不足だったみたいで・・・。 VBAってすごいですね。機会があったらかじってみようと思いました。

その他の回答 (2)

  • prome
  • ベストアンサー率32% (64/196)
回答No.2

たぶん、lassenさんが言われているのは、こういうことかと思います。 簡単のために3つの数字にしますと、 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 と表示するのではないかと。 わからないのは、こういう風に1つの順序を1行に書くのかどうかということ。 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 と横一列でいいのかな? もう少し、わかりやすく書いてください。 もしこれだとしたら、Excelの並べ替えのタグを使ってできる代物ではなくて、 マクロか何かになるのでしょうか。 私はマクロはよくわかりません。

  • Methyln
  • ベストアンサー率29% (242/823)
回答No.1

どのような状況での話をいっているのか分かりませんが、 メニューにある[データ]-[並べ替え]ではできないのでしょうか?

関連するQ&A

  • VBAで順列を表現する方法

    VBAによる順列の表記の仕方を教えてほしいです。 例えばn個の数値から2つの要素を並べる順列nP2の場合、1番目に選んだ数値が2番目の順列の選択候補から外れ、1番目と2番目の数値を順列として表示するようなVBAを組みたいです。 つまり同じ数字を2回以上使わないnPm(m≧2)という順列を作成したいのです。 どのようなプログラムを組めばよいか教えてください。

  • エクセルでの並べ替え

    まずは添付データを見ていただきたいのですが。 添付データのように並んでいる数字があります (実際にはもっと沢山あって、一部分をトリミングしております) そこから1~800の内で使われていない数字を 知りたいのです。 そのような事が可能でしょか? もし不可能なら、せめて一列にすべての数字を並べ替え出来るでしょうか?

  • 完全順列の総数について

    1、2、3…、nのn個の数字の完全順列は、1番目が2の場合がa通りあれば、1番目が3、4…、nの場合もそれぞれa通りあるのでしょうか? 参考書の問題ではすべてそうなのですが、nがどんな数字でもそうなるのか疑問に思いました。 よろしくお願いします。

  • 順列 初歩

    以下の問題のイがわかりません。ァはわかりますが、イの解説の「そのおのおのに対し,百, 十の位は残り5個から2個を取る順列で」のところがわかりません。5個と2個はどういうことでその数字になるんでしょうか?よろしくお願いします。 問題 数字の順列の基本 6個の整数1, 2, 3, 4, 5, 6から異なる3個を取り出して1列に並べたとき,で きる3桁の整数は全部でァ個ある。このうち、偶数はイ個, 4の倍数は ウ個, 5の倍数はエ個である。 解説 偶数であるから、一の位は2, 4, 6のいずれかで 3通り そのおのおのに対し,百, 十の位は残り5個から2個を取る 順列で 5P2通り よって,求める個数は 5P2×3=5・4×3=60(個)

  • Excelで乱数を使って並べ替え?

    Excel2000使ってます。 宝くじ(ロト6)当選予想ソフトを作ろうと思っています。 * 6×6の表に抽出した36の数字を入力し各行・列ごとに乱数を使って並べ替える方法。又は36文字全てを並べ替える方法がわかりません。 どなたか教えて下さい。よろしくお願いします。

  • プログラミング

    題のとおりです。 1~nの整数を並び替えてできる順列をn!個全て表示する再帰を用いたプログラミングって存在しますか???もし、このプログラミングができる人がいらっしゃったら教えてください。

  • Excelの並べ替えについて

    Excelの並べ替えについて 商品一覧の表を作っているのですが、そのデータには「数字」「アルファベット」「ひらがな」「カタカナ」が含まれています。 昇順で並べ替えを行うと「数字」-「アルファベット」-「ひらがな」-「カタカナ」の順番になりますが、それを例えば「ひらがな」-「カタカナ」-「数字」-「アルファベット」の順番で並べ替えを行うことは可能でしょうか? 現状では並べ替えを行ったあと範囲選択をして入れ替えをしていますが、それ以外に何かよい方法があればご教授お願いいたします。

  • エクセルのハイフンあり並べ替えで

    エクセル初心者です。例えばハイフンありの27-1 234-1 234-2 28-1 62-1 62-5 62-6  62 などの数字をエクセルで若い順番に並べかえするのは区切りで分割して並べ替える方法が簡単というのは過去の質問でわかったのですが、その後セルが分割せれてる為もとのハイフンありの形にもどす方法がわかりません。結合だと27や234のみの表示になります。色々試したのですがうまくいきません。良い方法を知っている方がおられましたら教えていただきたいです。区切りで並べ替え以外の方法でもかまいません。宜しくお願い致します。

  • Excelでの並べ替え

     いつもお世話になります。  急ぎで、以下のことをしたいのですが、Excelのマクロで何とかなりませんか? A B C D E F  このように300程の数字が、横に3つずつ区切ってセルに入っています。これを、 A B C のようにすべてA列に縦に並べ替えたいのですが。  申し訳ないですが、急ぐのでよろしくお願いします。

  • EXCELの並べ替えとランダムについて

    ABCDEFGを一つのグループとして、ランダムに並べ替え それぞれのアルファベットに1234のいずれかの数字を 付加するという作業をしています。 例 CEGDBAF GDBEACF … 1433212 3224312 … 今は、ABCDEFGにRANDで数字をつけ、昇順で並び替え それに、RANDBETWEEN(1,4)で得た数字をつけていくという 作業をしているのですが、グループの数が多い場合 この方法だと限界があると思いました。 何かまとめてできる方法がありましたら 教えていただきたく思います。 よろしくお願いします。

専門家に質問してみよう