方法があるのかないのか分かりません
 
エクセルで、数字ではない文字の入った複数のセルをランダムに並び替える方法を知りませんか?
「昇順」、「降順」キーを使えばその通りに並べ替えできるのですが、同様に「ランダム」キーがあって、それを押すとランダムに並べ替えが出来るみたいに簡単に出来る方法はないでしょうか、乱数を発生させる関数を使えば出来るようですが、ちょっと分かりずらく難しいです、
誰か、教えてください

このQ&Aに関連する最新のQ&A

A 回答 (4件)

関数だけでは難しいと思います。


いわゆるシャッフルですよね。
例えば次のように行います。
A1~A9まで、田中、鈴木、木村・・・、と名前を入れます。
B1~B9まで、=RAND() と入れます。
すると、B1~B9には、0.987、0.643、0.2122・・・と、乱数が表示されます。
そこで、B1をキーにして、並べ替えを行います。
とすれば、実質A列をシャッフルできます。

参考URL:http://homepage2.nifty.com/mako-chan/excel/excel …
    • good
    • 0
この回答へのお礼

出来ました、ありがとうございます
 私の望んでいた答えに一番近いです、というかそのものです、こんなに簡単な方法があったなんて、知らなかったのが恥ずかしいくらいですね
 感謝です、またなんかあったらお願いします
 ありがとうございました

お礼日時:2005/04/03 11:53

関数で並べ変えたものを別シートなどに取得したい場合には(rand関数を非表示にしたい場合など)、以下の数式を入力してF9キーを押します。


(並べ替えの列がC列でRAND関数をB列に記載した場合)。

=INDEX(C:C,RANK(B2,B:B,ROW()))

場合によれば、「ツール」「オプション」「計算方法」で自動のチェックを手動にしたほうがよいかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
 でも、これ難しいです

お礼日時:2005/04/03 11:40

こんばんわ。


乱数を発生させる関数は「=RAND()」です。
この関数をキーとなる列にずらっと配置して。。。
その列を昇順なり、降順で並べ替えれば御期待の動作になると思いますよー(^o^)丿
    • good
    • 0

こんばんわ。


乱数を発生させる関数は「=RAND()」です。
この関数をキーとなる列にずらっと配置して。。。
その列を昇順なり、降順で並べ替えれば御期待の動作になると思いますよー(^o^)丿
    • good
    • 1
この回答へのお礼

回答、ありがとうございます
 方法が良く飲み込めなかったけど
NO、3の答えを見て同じ方法だとわかりました、飲み込みが悪くてすみませんでした

お礼日時:2005/04/03 11:45

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel 列データのランダムな並び替え(シャッフル)ってできますか?

こんにちわ。
Excelのデータで、以下のように列データの並び替えを行いたいのですが、Excelの機能でできますでしょうか?
Excelでできなければ、フリーソフトでも結構です。

ご存知の方がいらっしゃいましたら、教えていただけないでしょうか?
よろしくお願い致します。

<元の列データ>       <並び替え後>
良い                 普通
良い                 悪い
良い                 良い
良い                 普通
普通                 良い
普通        →        悪い
悪い                 悪い
悪い                 良い
悪い                 良い
…                  …
  

Aベストアンサー

RAND()関数を使うそうです。
これが参考になるかと。

参考URL:http://d.hatena.ne.jp/fyts/20080222/excel

QExcelで事前にセルに入力した言葉をランダムに表示

例えばA1に「いぬ」 A2に「ねこ」 A3に「ぞう」 A4に「たぬき」 A5に「きつね」と入力します
次に
B1~B10に 「いぬ」「ねこ」「ぞう」「たぬき」「きつね」のいずれかを自動にランダムに表示する方法を教えてください
こんな便利な機能があれば良いと思うのですが・・・

Aベストアンサー

=INDIRECT("A"&INT(RAND()/0.2)+1)

INT(RAND()/0.2)+1 で1~5までの整数が得られます。
INT(RAND()/0.1)+1 で1~10までの整数が得られます。
INT(RAND()/0.02)+1 で1~50までの整数が得られます。
INT(RAND()/0.01)+1 で1~100までの整数が得られます。

それでA1からA5、A1からA10、A1~A50、A1~A100のセルの内容を取得しています。A2からなら+2にしてください。
F9キーを押すたびに再計算されて、表示も変わります。

Qエクセル指定した範囲からランダムで一つ抽出

エクセルの関数についての質問なのですが、

B1~B5に値がならんでいたとして、B1~B5の中からランダムに一つ抽出したものをA3に表示する関数はありますか?

Aベストアンサー

A3に次の式を入力すればよいでしょう。

=INDEX(B1:B5,RANDBETWEEN(1,5))

Qエクセルで1から10の数字をランダムに並び替えたいのですが、わかりません。

 エクセルで乱数表をつくる方法があると聞き、やってみましたが、さっぱりわかりません。宿題で使うので困っています。どなたか、教えて下さい。お願いします。

Aベストアンサー

関数を使います
セルに下の式をコピーして
他のセルにコピー→貼り付けしてみてください
元の関数は、0~1の乱数発生です
それを10倍して、切り上げました。
(切り上げでも丸めでも何でも良いとは思いますが)

=ROUNDUP(RAND()*10,0)

Qエクセル関数を使って、ランダム抽出をしたいです

エクセル関数を使って、ランダム抽出をしたいのですが
どの関数を使用すればいいのかわからないのです。

現在、1つのシートにいろいろなデータが入っているのですが、
D列のデータを使い、そのデータをランダムに25件抽出したいのです。

よろしくお願い致します。

Aベストアンサー

Sheet1にデータが入っているとして、そのD列のデータをSheet2のA列に取り出して操作をすることにします。
関数で取り出すのでしたらSheet2のA1セルに次の式を入力し下方にオートフィルドラッグします。
=Sheet1!D1
B1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A1="","",RAND())
C1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A1="","",RANK(B1,B:B))
D1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(OR(COUNTIF(C:C,ROW(A1))=0,ROW(A1)>25),"",INDIRECT("A"&MATCH(ROW(A1),C:C,0)))
これでSheet2のD列にはランダムに抽出されたデータが並ぶことになります。
なお、F9のキーを押すことで抽出操作を繰り返すことができます。

Q表(リスト)からランダムに抽出するには?

Excelで次のような表を作りました。(例として書きます)

1. みかん
2. バナナ
3. もも
4. なし
5. 栗   ・・・(以下同様) と続いていきます。

今回、その表から、ランダムにデータを抽出し、別のセルに書き出したいのですがどうやっていいのかわかりません。(理想図を下に書きます。)


2. バナナ
5. 栗
1. みかん  ・・・・・(以下同様)

このようにして、今ある表から、ランダムに並び替えた、 『新たな表』 を作りたいのです。

どのように関数(RAND関数?)を設定したらいいのかよくわかりません。 教えてください。お願いします。

ちなみにOffice2000です。

Aベストアンサー

こんにちは。maruru01です。

作業列を1列だけ使用した、絶対に重複しない数式での方法です。
元データがA1:B5で、C列を作業列に使用して、D:E列に表示するとします。
まず、C1に、

=INT(RAND()*5+1)

と入力します。次に、C2に、

=LARGE(INDEX(NOT(COUNTIF($C$1:C1,ROW($A$1:$A$5)))*ROW($A$1:$A$5),),INT(RAND()*(5-ROW(C1))+1))

と入力して、C5までコピーします。
そうしたら、D1に、

=INDEX(A:A,$C1)

と入力して、E1にコピー。
さらに、D1:E1を5行目までコピー。

やはり、[F9]を押すたびごとに並べ替えられます。

QExcelで複数列かつ複数行分の一括並べ替えについて教えてください

Excel2003を使っています。
【例】
A1:N530の表の中の一部分D1:I530範囲(6列で530行)部分のみを
列単位で一括で並べ替えしたいと思っております。
D1:I530範囲には6列に23、96、11、106、72、49といったように530行全てランダムに数値が入っております。これを各行毎に全て左から昇順に530行分一括並べ替えしたいということでございます。
エクセル機能の「データ」→「並べ替え」→「現在選択する範囲を並べ替える」→「オプション」→「列単位」を指定して列単位に並べ替えは出来たのですが1行ずつしかソート出来ません。
このやり方では530回並べ替え作業をすることになり、時間的に余裕がないのでこの場合にExcel2003の機能で一括で530行分を列単位でもって左から並べ替えをする方法があるでしょうか?
ちなみにExcel2007もまだ使ったことないですが所持しています。
仕事上緊急でご質問させていただいております。是非助けてください。

Aベストアンサー

>セル背景色も一緒にソート移動されているかなと思った・・・・・
下記マクロを試してください。

Sub test1()
Dim r As Range
Dim srng As Range

Set srng = Range("D1:D530")
For Each r In srng
'列単位昇順並べ替え
r.Resize(, 6).Sort Key1:=r, _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal
Next
End Sub

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報