たとえば、A,B,C,Dという箱にそれぞれ1~4の数字を入れると
1111
1112
1113
・
・
・
4444
と全部で256通りの組み合わせができると思います。
このようにいくつもの値の組み合わせをエクセルで全て作製するにはどのようにしたらよいのでしょうか。
実際には、Aに(10,20,30,40)、Bに(0.5,1.0,1.5,2.0)、Cに(500,600,700,800)、Dに(1.1,1.2,1.3,1.4)という感じの値の組み合わせを全通り作りたいです。
簡単なことかもしれませんが、あまり詳しくないので困っています。
よろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは!
参考になるかどうか分かりませんが・・・
結論としてA~D列は必ず 1~4のいずれかの値が入るということで
そのすべての組合せを表示させれば良いのですね?
そういう事だと解釈させていただいての回答です。
かなり強引なやり方になりますが
↓の画像の
A1セル =IF(ROW()>256,"",IF(MOD(INT(ROW(A64)/64),4)=0,4,MOD(INT(ROW(A64)/64),4)))
B1セル =IF(A1="","",IF(MOD(INT(ROW(A16)/16),4)=0,4,MOD(INT(ROW(A16)/16),4)))
C1セル =IF(B1="","",IF(MOD(INT(ROW(A4)/4),4)=0,4,MOD(INT(ROW(A4)/4),4)))
D1セル =IF(C1="","",IF(MOD(ROW(A1),4)=0,4,MOD(ROW(A1),4)))
という数式を入れて、オートフィルで下へずいずぃ~~~!とコピーします
これで多分すべての組合せが表示されると思います。
ただし、今回の場合のみ有効で
例えば列が増えるとか、4を超える数値があったりすると
当然数式は変わってきます。
以上、参考になれば幸いですが、
的外れなら読み流してくださいね。m(__)m
No.3
- 回答日時:
こういうことかなあ
A1セルに
=INDEX(F$1:F$4,MOD(INT((ROW(A1)-1)/4^(4-COLUMN(A1))),4)+1)
右へ、下へオートフィル
No.2
- 回答日時:
この手の問題は標準関数より VBA による解決の方が手っ取り早いです。
For ループのネストですね。
Sub SampleProc1()
Dim nRow As Long
Dim n1 As Variant, n2 As Variant
Dim n3 As Variant, n4 As Variant
nRow = 1
For Each n1 In Array(10, 20, 30, 40)
For Each n2 In Array(0.5, 1#, 1.5, 2#)
For Each n3 In Array(500, 600, 700, 800)
For Each n4 In Array(1.1, 1.2, 1.3, 1.4)
Cells(nRow, 1).Value = n1
Cells(nRow, 2).Value = n2
Cells(nRow, 3).Value = n3
Cells(nRow, 4).Value = n4
nRow = nRow + 1
Next
Next
Next
Next
End Sub
これが基本形。
加えて、#1 ご紹介の考え方を利用し、添付図のようにデータを入力したと
すれば、下記のソースを試しに確認してみて。
自信はあまりないんだけどね(。-´ェ`-)
Sub SampleProc2()
Dim sh As Worksheet
Dim rSrcData As Range
Dim nRowsCount As Long, nColsCount As Long
Dim x As Long, y As Long
Dim i As Long, n As Long
' データ範囲の問い合わせ
On Error Resume Next
Set rSrcData = Application.InputBox("データ範囲を選択", Type:=8)
On Error GoTo 0
If rSrcData Is Nothing Then Exit Sub
' データ件数を調べる
With rSrcData
nRowsCount = .Rows.Count
nColsCount = .Columns.Count
End With
If nRowsCount ^ nColsCount > 65536 Then ' Excel2003 max row num
MsgBox "データ数が多すぎます", vbCritical
Exit Sub
End If
' 列挙開始
Set sh = Worksheets.Add
Application.ScreenUpdating = False
x = 1
For i = 0 To nRowsCount ^ nColsCount - 1
y = nColsCount
n = i
While y > 0
sh.Cells(x, y).Value = rSrcData.Cells(1, y). _
Offset(n Mod nRowsCount).Value
n = n \ nRowsCount
y = y - 1
Wend
x = x + 1
Next i
End Sub
No.1
- 回答日時:
具体的にどうしたいのかイメージがわかないのですがアドバイス
1)1つずつ入力する
2)変化するパターンを読んで、パターンをコピーして必要なだけ連続して貼り付ける
3)割り算とINT関数の組み合わせや MOD関数で各桁の数字を計算させる
好きな方法を選びましょう
3は0~3333まで増加する4進数と見なすと良いかもしれませんが、
4進数の意味が分からないなら忘れてください
アドバイスにもなりませんから(汗
(0~3333に1111を加えればOK)
※ 最終的なイメージを質問から読み取れませんので、具体的な関数の使い方は
省略させていただきます
んー…あと、Excelは 2007でしょうか?
2003までは65536行までしか入力できませんから、それ以上の組み合わせがある場合は
シートを跨ぐことになります
2007なら、それ以上の行を入力できますから大丈夫でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) エクセルの使い方で教えて頂ければと思います 2つの表があります A B C D 10 20 30 4 3 2022/06/06 17:42
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- PDF PDFで資料を編集したいです 2 2023/08/10 22:56
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- その他(プログラミング・Web制作) 「問題も答えも画像」のクイズを簡単に作れるもの何かありませんでしょうか? 1 2022/05/30 17:29
- Excel(エクセル) エクセルで重複しない組み合わせの出し方 6 2023/01/12 23:51
- スタンプ・絵文字・顔文字 特殊文字について教えてください 4 2022/09/13 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル関数について
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Microsoft365で写真をアルバム...
-
VBA
-
自分の専門分野の仕事。初見で...
-
Microsoft Formsの「個人情報や...
-
office365って抵抗感ないですか?
-
【スプレッドシート】指定の日...
-
office2010とoffice365の共存で...
-
会社のTeamsのことで相談です。...
-
マイクロソフト365の「無料でサ...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
Excel テーブル内の空白行の削除
-
PC officeのアイコンを触ってい...
-
Excelで時間計算(負)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
outlookのツールバーが縦になっ...
-
【Excel】セル内の文字が正しい...
-
Excel テーブル内の空白行の削除
-
Microsoft 365 Apps for busine...
-
Microsoft Formsの「個人情報や...
-
【スプレッドシート】指定の日...
-
office2010とoffice365の共存で...
-
web上にあるエクセルをショート...
-
英数字のみ全角から半角に変換
-
Excel データの並び替えについて
-
何文字超えたファイルだけを抽...
-
エクセルマクロ(超初心者)
-
Microsoft Officeを2台目のPCに...
-
パソコン買い換え Office移行 ...
-
【スプレッドシート】白色のセ...
-
会社PCのメールが更新されない
-
IF(EXACT(B1,B2),"一致","不一...
-
http://oshiete.goo.ne.jp/qa/1...
おすすめ情報