• 締切済み

教えてください。エクセルでランダムに数字を検索をし

例えば、1~30まである数字を5つのグループにする方法で、その中には5を軸にして6個にする方法です。又は、5と10を混ぜて何種類かのグループを作る方法です。 第1週目 月~金までは 5番と10番の人と残り4人 計6人。 第二週目は、 4番と12番の人と残り4人 計6人 第3週目は 8番と11番の人と残り4人 ケイ人 リーダーを2人で編成のグループを作りたいのですが、エクセルでできる歩y法があれば教えて下さい。   宜しくお願いします。

みんなの回答

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

(1)シート1 A2には日付を入れるとあり、1月1日と入れました。 (2)シート1 A1とB1にはリーダーの名前を入れました。   (3)シート1 C2打ち込みは回答編のものをコピー貼り付けをしました。 シート1での操作とシート2での操作があります。シート1ではA2セルから下の行には1月2日、1月3日・・と表示されていますね。 オートフィルドラッグコピーと述べましたのは例えばA2セルに式を入力した後でA2セルを選択しますとセルの右下隅に■が表示されますね。それにカーソルを合わせて左クリックしたままで下方の行に引っ張っていくことです。 B2セルにも式を入力してから下方にドラッグすることで曜日が表示されますね。 それらの操作が済んだら操作の大部分はシート2で行います。 A1セルからB1セルには主の人と副の人の名前を入力します。5つのグループを作るわけですからA2とB2セルに別のグループ、A3とB3に別のグループ、同じようにA5セルからB5セルまでを入力します。 A10セルからA29セルまでには他の人の名前を入力します。 シート2についてはたくさんの式を入力してはドラッグコピーする操作をすることが必要です。 最後に、最後の式をシート1のC2セルに入力し、横方向H2セルまでドラッグしたのちに、今度はC2セルからH2セルまでを選択してH2セルの右下隅にある■を下方にドラッグ(引っ張る)します。 こちらの述べた方法をよく読まれて操作を行ってください。

run920
質問者

お礼

KURUMITOさん ありがとうございました。 私は、マクロとかエクセル関数等の勉強をしていないので、 KURUMITOさんからしてみれば、まどろこしいと思いますが ご指導願いませんか。 尚、他の方で御指導願えれば大変助かりますが、 もし居られれば宜しくお願いします。 RUN92050500893

run920
質問者

補足

 お世話になっております。   再度確認をしましたが、うまく作動しません。 簡単に書いてみます。 シート1 A2~A32(1ヶ月分)は日付が入っています。   〃  B2~B32は、TEXT(A2、”aaa")~TEXT(A32、”aaa")と表記されています。   〃  C2及びD2~C32及びD232はリーダー名(C2=伊東・D2=酒井)が 表記されています。    〃  E2~H2は空白でクリックをすると、以下のものが数式バーに。     =IF(OR($A2="",WEEKDAY($A2,2)>=6),"",IF(COLUMN(C1)     <=2,INDEX(Sheet2!$A$1:$B$5,MATCH(MOD(WEEKNUM($A$2)-     WEEKNUM($A2),5)+1,Sheet2!$D$1:$D$5,0),COLUMN(C1)),IF(COLUMN(C1)     <=6,INDEX(Sheet2!$A$10:$A$29,MATCH((MOD(WEEKNUM($A$2)-                WEEKNUM($A2),5)+1)*100+COLUMN(C1)-2,Sheet2!$E$10:$E$29,0)),"")))         と出てきます。   〃  E3及びH3以下は、#N/A が表示されています。 シート2     A1~A5は伊東 B1~B5は酒井     C1~C5には0.901562等。(F9を押す変化をします。)     D1~D2には1~5。   (F9を押す変化をします。)     A10~A29には作業員の名前20人分が出でます。    B10~B29には0.218033(下6桁の数字)。    C10~C32には1~20の数字。    D10及びE10~D29及びE329には #NAME? が表示されています。   F9を押すと、数字の部分と#NAME?の部分が変化をします。   以上です。   ご理解得られましたでしょうか。   何分専門知識がないので、吞み込みが悪くて申し訳ありませんが   よろしくお願いします。

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

作業用のシートを作って対応します。 元の第1週目などを決める日付のデータはシート1に有るとしてシート1のA2セルには例えば今年の1月1日からのカレンダーを作るとして1/1のように入力します。その後に下方にオートフィルドラッグすることでカレンダーの日付を表示します。 次にB2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =TEXT(A2,"aaa") その後に作業者の名前などはシート2に入力することにして次のようにします。 A1セルからB1セルにはグループを作る上で主の人と副の人を入力します。このようにしてB5セルまでを使って5つのグループに入る主と副をセットにして入力します。 C1セルには次の式を入力してC5セルまでオートフィルドラッグします。 =RAND() D1セルには次の式を入力して下方にオートフィルドラッグします。 =RANK(C1,C$1:C$5) その他の作業者の名前をA10セルからA29セルまで入力します。 B10セルには次の式を入力してB29せるまでオートフィルドラッグします。 =RAND() C10セルには次の式を入力してC29セルまでオートフィルドラッグします。 =RANK(B10,B$10:B$29) D10セルには次の式を入力してD29セルまでオートフィルドラッグします。 =ROUNDUP(C10/4,0) E10セルには次の式を入力して下方にオートフィルドラッグします。 =IF(D10="","",D10*100+COUNTIF(D$10:D10,D10)) これでシート2での作業は終了です。 シート1に戻ってC2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR($A2="",WEEKDAY($A2,2)>=6),"",IF(COLUMN(A1)<=2,INDEX(Sheet2!$A$1:$B$5,MATCH(MOD(WEEKNUM($A$2)-WEEKNUM($A2),5)+1,Sheet2!$D$1:$D$5,0),COLUMN(A1)),IF(COLUMN(A1)<=6,INDEX(Sheet2!$A$10:$A$29,MATCH((MOD(WEEKNUM($A$2)-WEEKNUM($A2),5)+1)*100+COLUMN(A1)-2,Sheet2!$E$10:$E$29,0)),""))) これでシート2には月曜から金曜日までの日付にランダムにグループのペアとその他の作業者がランダムに並ぶことになります。 なお、第1週はシート1のA2セルに入力したデータで決められますのでご承知おきください。 F9キーやシート2のデータを操作することで瞬時にシート1のデータが変わってしまいますので一度決定した組み合わせを保存するためにはシート1全体を選択してコピーし、他のシートに「形式を選択して貼り付け」で「値」を選択して貼り付け保存することが望ましいでしょう。一度こちらが指示した通りで試験してみてください。

run920
質問者

補足

早速のご回答ありがとうございました。 実際に入力をしてみましたが、理解不足と入力ミスなのかうまく作動をしません。 再度教えてください。 (1)シート1 A2には日付を入れるとあり、1月1日と入れました。 (2)シート1 A1とB1にはリーダーの名前を入れました。   (3)シート1 C2打ち込みは回答編のものをコピー貼り付けをしました。 結果    シート1に出る予定の名前が出なくて、#N/Aと表示をされます。 ほかに確認をする処があると思いますので、御教授願います。 よろしくお願いします。

関連するQ&A