• ベストアンサー

EXCELでのセルの入れ替え

EXCELのセル内に 000001~100000の数字のみが、縦に順番通り並んでいます。 この数字を連番無く、バラバラにしたいのですが、可能でしょうか? [例] 1     2 2     4 3  →   1 4     5 5     3 のように出来ればいいのですが、 可能であれば、やり方を教えてください。 もし不可能でしたら、多少連番になってもいいです。 困っています。よろしくお願いします。 ps.ちなみにExecelは初心者です。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

手順を詳しく書いた方が良さそうですね。 Excel2003でよろしいのでしょうか? A列に連番が入っている物とします。 (1).B1に =RAND() と入力し、A列と同じ行までコピーします (2).A列B列を選択した状態で、上部メニューの[データ]-[並べ替え]を選択します。 (3).「並べ替え」ダイアログで、最優先されるキー:列B と設定して<OK>を押します。 (4).これでA列の値が<OK>を押された時のB列の値の順に並び替えられました。B列の値は、並び替えられた直後に更新されますので、順番に並んでいないように見えます。 (5).もうB列は不要なので削除します。 これでA列がバラバラに並び替えられました。

atena263
質問者

お礼

すごく分かりやすかったです。 ありがとうございました。

その他の回答 (5)

回答No.5

atena263さん 今日は! >EXCELのセル内に000001~100000の数字のみが縦に順番通り並んでい>ます。この数字を連番無くバラバラにしたいのですが可能でしょうか? 既に回答者の皆さん依り回答が出ていますので補足を? ■Excel(エクセル)基本講座:数学/三角関数(Excel2002・2003)↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/abs.htm 内容:1.絶対値(ABS関数)2.正負の調査(SIGN関数)3.円周率PI()4.角度(RADIANS関数,DEGREES関数)5.三角関数(SIN,COS, TAN)6.平方根(SQRT関数)7.べき乗(POWER関数)8.乱数(RAND関数)9.階乗(FACT関数) の中から乱数(RAND関数)を参照します。 乱数を返す→ランド(ランダム)=RAND() 0以上で1より小さい乱数を発生させます。 ワークシートが再計算されるたびに、新しい乱数が返されます。 RAND関数で乱数を発生させた後、ワークシートが再計算されるたびに乱数の値が変更されます。 数値に置き換えるには、数式バーに「=RAND()」と入力して[F9]キーを押します。 「a」と「b」の範囲で乱数を発生させるには、=RAND()*(b-a)+a とします。 通常の並び替えの方法です。 ■Excel(エクセル)基本講座:並べ替えの使い方(Excel2002・2003)↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/sort.html 内容:1.並べ替え・2.表の一部分を並べ替える・3.文字列の並べ替え・ 4.数字(文字列)の並べ替え・5.文字列にふりがなを付ける方法・6.行方向の並べ替え等が図解で判り易く手順が説明されています。 ■Excel基本講座:Excel(エクセル)関数一覧表(Excel2002・2003)↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html 内容:【種類別エクセル関数一覧表】・【アルファベット順エクセル関数一覧表】・ 【機能別エクセル関数一覧表】に分類されているので便利です。(今後の参考にして下さい) ■Excel(エクセル)関数の技:目次(Excel2002・2003)↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/index.html 内容:エクセル関数を機能別に分けて説明を付けています。 ここにないエクセル関数はExcel(エクセル)関数一覧表をご覧ください。 ■ExcelVBA入門:重複しないランダムな数値を得る方法(Excel2002・2003)↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_rnd.html 内容:はじめに→1から10の整数をランダムに並べたいと思います。 ワークシートで実行するならA1:A10に1~10を入力し、B列に=RAND()と入力します。 そして、B列を基準に並べ替えればよいと思います。(VBAの入門で何れマクロも勉強する時の参考にして下さい) Excel2007についてはExcel2007を参考して下さい。(ホームで選択出来ます)初心者さんとの事で色々サイトを並べました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

解答No3です。 エクセル2003を使っておられるのでしたら100000行までの入力はできません。エクセル2007でしたら100000行でも入力ができるのですが。 エクセル2003では65536行までが限度ですね。 どちらのバージョンでしょう。2003の場合には別の方法になります。

atena263
質問者

補足

私が使用しているのは、2003です。 そんなことも分からず、すみません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

例えばA1セルに次の式を入力します。 =IF(ROW(A1)<=100000,RAND()) また、B1セルには次の式を入力します。 =IF(A1="","",RANK(A1,A$1:A$100000)) A1セルとB1セルを選択してコピーします。 その後に名前ボックスにA1:A100000と入力しEnterします。 A1からA100000セルが選択されますので右クリックで「貼り付け」をします。 これでB列には100000までの数値がランダムに並ぶでしょう。 100000の数字ともなりますと万が一、同じ数値がB列に並ぶ可能性は限りなくゼロに近いのですが無いとは言えません。 それを検証するためにはC1セルに次の式を入力し、C100000セルまでオートフィルドラッグします。 =IF(B1="","",IF(COUNTIF(B$1:B$100000,B1)=1,"",1)) 最後にD1セルに=SUM(C1:C100000)と入力して0であれば同じ数値は無いということになり成功です。もしも1以上の数値が表示されたならF9キーをクリックしてもう一度並び替えを行ってください。 B列が答えの数値の並びになりますね。

atena263
質問者

補足

細かくありがとうございます。 B1に=IF(A1="","",RANK(A1,A$1:A$100000))を入力とあるのですが、 「入力した数式は正しくありません」と出るのですが、 A1もB1も書いて頂いた式を貼り付けなので、他に設定とか必要ですか?

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

B列にRand関数を書いてB列でソートすればよいでしょう

atena263
質問者

補足

説明が不十分ですみません。 A列そのものの数字の順番が、変わることは出来ますか? B列は、なんの数字ですか?少数?

  • zongai
  • ベストアンサー率31% (470/1474)
回答No.1

空いている列、もしくは1列追加して 1セルに =RAND() と入力し、行数分コピーします。 並び替えで、RAND関数を入れた列を昇順(もしくは降順)としてください。 これで順番がバラバラになります。 RAND関数は乱数を発生させる関数です。 上に書いた手順を実行した後も、再計算でまた乱数となっていますので、そのまま並び替えを繰り返せば、その都度順番が変わります。 × Execel  ○ Excel

atena263
質問者

補足

指摘ありがとうございます。 以後気をつけます。 説明不十分ですみません。 上に書かれている方のA列そのものの数字をバラバラに するにはどうすればいいでしょうか?

関連するQ&A