![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
図のような、ます計算のシートを作成しています。
ネット上には色々な手段でサンプルのシートがあるのは承知の上です。
引き算シートの作成で数字を重ねず、かつ幅を持たせた配置をしたいと考えています。
具体的には、B3からE3までの数字を、8から19までで重複せずに配置したいといった考えです。
rand関数、randbetween関数、rank関数を足し引きなどの組み合わせて並べていますが、
どうしても同じ数字や隣りあわせが1違いなどで並んでしまうことがあり、問題が解きやすく
なってしまっているのが現状です。
vbaで重複のフラグを立てて、再抽選みたいな方法と考えているのですが…
ループ処理になるのかなとは思うのですが、代入のvbaまでは思いつくのですが、
再抽選以降が自分には思いつかないです。
vba、もしくはそれ以外でのヒントを教えていただければと思います。
よろしくお願いします。
![「エクセル 同じ行の隣り合う数字の幅を広げ」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/102899_67924e9fd899f/M.png)
No.5ベストアンサー
- 回答日時:
下記URLにアップしました。
コピーして使用してください。
マクロは標準モジュールに登録してください。
https://ideone.com/HCijUN
ランダムな整数の配列を作るために、汎用的な関数GetRandArrayを作成して呼び出しています。
この関数の引数は、以下のようになります。
GetRandArray(整数の下限値,整数の上限値,配列の要素数,隣り合う要素の差の最小値)
今回は、「8~19の範囲の整数を4個欲しい、又、要素間の差は2以上にしたい。」ということなので
randval = GetRandArray(8, 19, 4, 2)
として、GetRandArrayを呼び出します。
randval は、必ずVariant型で定義します。
Dim randval As Variant のように定義します。
結果として、randvalには、4つの整数が格納されます。
randval(1)・・・1番目の整数
randval(2)・・・2番目の整数
randval(3)・・・3番目の整数
randval(4)・・・4番目の整数
となります。
このrandval(1)~randval(4)をB3~E3に格納しています。
尚、取得に失敗した場合は、全ての要素に0が返ります。
回答ありがとうございました。
マクロ、確認させていただきました。
私が思っていたよりもずっと複雑なプログラミングになってしまいましたね。一行ずつ確認させてもらい、条件式の意味合いを理解させてもらいました。
あと、マスが同じシート内に4つあるので、こちらは乱数設定のプログラムの一部をコピー&セル番地変更で修正し、つなげて記述させてもらいました。
まだまだ奥が深いですね。でも、こうやって動かせることは素晴らしいです。ありがとうございました。
No.4
- 回答日時:
》 数字を重ねず、かつ幅を持たせた配置をしたい
1.数値の桁数が最多の列を選択して、
 ̄ ̄マウスの右クリック⇒[列の幅]を読み取る(例: 8)
2.列範囲 A:E を選択⇒[列の幅]の空欄に数値 8 を入力⇒[OK]をツン
オ・シ・マ・イ
No.3
- 回答日時:
こんばんは
B3:E3の値(8~19)で
・値の重複がない
・隣り合う値の差が2以上である
を満たせばよいものと解釈しました。
左側から順に計算してゆくものとして、セルの値を決める際の条件の表現を若干変えて、
・既出の値と重複しない
・左隣のセル値との差が2以上である
を満たす値をランダムに決めてゆけば、同じ結果が得られるはずです。
ヒントとしては以上になります。
当方の確認のため、関数で実際に試してみました。
スピル機能が使えるバージョン(=Office365等)を想定してよければ、上記の条件をそのまま記述して、
1)B3セルに
=RANDBETWEEN(8,19)
2)C3セルに
=LET(n,ROW(8:19),a,FILTER(n,(COUNTIF($B3:B3,n)=0)*(ABS(B3-n)>1)),INDEX(a,RANDBETWEEN(1,COUNT(a))))
の式を入力し、E3セルまで右方にフィルコピー
することで可能と思います。
※ RND関数を使っているため、計算が「自動計算」になっているとB4:E7に何かを入力すると再計算されてしまいますが、ご質問文でもRAND関数に触れられているので、それは構わないものと解釈しました。
回答ありがとうございます。
エクセルバージョン書き忘れてました。2019です。
すみません、filter関数が使えないようで・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel関数-文字列で自動作成された関数を実行する方法 3 2024/06/19 14:11
- Excel(エクセル) INDIRECTを使わず excelで複数シートの同じセルを抽出したい 3 2024/04/12 12:20
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) Sub 要具ライフ() ActiveSheet.Cells.Find(what:="TOPゴム"). 2 2024/03/27 11:57
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) 【Excel(エクセル)】複数シートで名簿管理したいです(数式?マクロ?) 3 2023/11/03 08:01
- CAD・DTP AutoCad 大きさの違う文字を描く時、前の文字の終わり点を知りたい 3 2024/03/06 12:05
- Visual Basic(VBA) Excel VBA 文字列のセルを反映させたいです 2 2024/02/24 00:06
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excel vba 重複削除、連番に並び替え 6 2023/10/18 22:22
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Excelの開始ブックを固定したい マクロなしで
Excel(エクセル)
-
エクセルの計算式を教えてください! もし、 A 1の数値が55を超えたら、(◯−55)×8000 4
Excel(エクセル)
-
エクセルでセルに入力する前は非表示にしたい
Excel(エクセル)
-
-
4
Excelで数値を時間数に変換する関数について
Excel(エクセル)
-
5
エクセルにて時間帯にて自動で表示を変える
Excel(エクセル)
-
6
年間の医療費のデータがあり、月々の集計をする計算式を教えていただけませんか
Excel(エクセル)
-
7
45490がどうして
Excel(エクセル)
-
8
文字列1文字列2"文字列3を文字列1“文字列2”文字列3にまとめて置換するには"
Excel(エクセル)
-
9
関数を教えて下さい
Excel(エクセル)
-
10
エクセル条件付き書式について。
Excel(エクセル)
-
11
納期順に勝手に並べ替えられるようにしたいのですが…
Excel(エクセル)
-
12
Excelの条件付き書式のコピーと参照セルを自動で変えるようにする方法
Excel(エクセル)
-
13
ファイル名の変更
Excel(エクセル)
-
14
Excel 関数での質問です
Excel(エクセル)
-
15
エクセルの条件付き書式設定について教えてください。
Excel(エクセル)
-
16
Excelの数式について教えてください。
Excel(エクセル)
-
17
考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
18
【Excel】 1つのセルの日にちを4分割にしたい
Excel(エクセル)
-
19
エクセルの関数について 理解度が◯、正解(◯)の科目を探したいです。 例えば、下の写真の26番なので
Excel(エクセル)
-
20
【再投稿】レイアウトが異なる別のワークブックからデータを転記する方法を教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】シート追加時に同じ...
-
【マクロ】Call関数で呼び出し...
-
別のシートの指定列の最終行を...
-
システムファイルについて
-
エクスプローラーで見ることは...
-
スプレッドシートでの数値集計
-
Vba アドインソフトのバージョ...
-
Excel関数の解決方法
-
Excelのデーターバーについて
-
自動的に日付入力 応用
-
エクセルの設定、下へスクロー...
-
エクセルの数式につきまして
-
エクセルの設定、特定の列以降...
-
UNIQUE関数の代用
-
【マクロ】表における同じお客...
-
カーソルを合わせてる時のみ行...
-
Excelでプルダウン選択(I1セル)...
-
エクセルの数式について教えて...
-
エクセルの数式について教えて...
-
エクセル 同じ行の隣り合う数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報
その次の説明文に、同じ数字が重なってしまう現象について書いてありますよね?
隣の数が1違いだったら、難しい計算しなくても隣の数字±1で解けるので、解きやすくなってますよね?
質問の趣旨の捉え違いです