解決済み

Excel2007で組み合わせの計算

  • 困ってます
  • 質問No.9565242
  • 閲覧数55
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 91% (90/98)

Excel2007で記号の組み合わせの計算がしたいです。パターンの出力と言うんですかね?ちょっとその辺の単語力に乏しいのですが…。
質問させていただきます。

A列、B列、C列、D列の10行目までにアイウエオカキクケコのいずれかがが各セルに入ってます。A列×B列×C列×D列

この場合は全部で1万通りになります。
できたパターンをF列に一通りずつ(できるならまとめて一発ででもいいのですが)上から入れていき、
F列のパターンの入った先頭セルの隣のセルGに10000通りと表したいたいです。

教えて下さい。

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

  • 回答No.3

ベストアンサー率 61% (397/643)

Excel(エクセル) カテゴリマスター
>できたパターンをF列に一通りずつ
F列に1万通りのパターンを書き出してみました。
Sub Test()
  Dim v(1 To 10000, 0)
  Dim Kana As Variant, i As Long
  Dim a As Long, b As Long, c As Long, d As Long
  Kana = Array("ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ")
  For a = 0 To 9
    For b = 0 To 9
      For c = 0 To 9
        For d = 0 To 9
          i = i + 1
          v(i, 0) = Kana(a) & Kana(b) & Kana(c) & Kana(d)
        Next d
      Next c
    Next b
  Next a
  Range("F1:F10000").Value = v
End Sub
お礼コメント
961awaawa

お礼率 91% (90/98)

おはようございますwatabe007さん。引き続きのヘルプありがとうございます。ですがまた私の説明不足に気付きました。
A列、B列、C列、D列に自ら好きな記号等を入れてマクロボタンを押して計算結果をF列に並べたいんです。
必ずしも10000通りではなく、好きな記号を好きな数だけ入れてその計算結果をF列に、という訳なんです。

いつも何度もすみません。
投稿日時 - 2018-12-07 04:37:54

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 28% (4452/15825)

Excel(エクセル) カテゴリマスター
VBA向けの課題だと思って、VBAで。
標準モジュールに下記を貼り付け
Private Sub test00()
Dim rSrc As Range
Set rSrc = Range("B2").CurrentRegion
MsgBox rSrc.Address
PrintCombi Range(rSrc.Address)
End Sub
Sub PrintCombi(ByVal rSrc As Range)
Dim tnFld As Long
Dim nRc As Long
Dim nConti As Long
Dim nRow As Long
Dim i As Long
Dim j As Long

tnFld = rSrc.Columns.Count
nConti = 1
With rSrc(1, rSrc.Columns.Count + 2)
.CurrentRegion.Clear
For i = tnFld To 1 Step -1
nRc = Cells(Rows.Count, i).End(xlUp).Row
nRow = 1
For j = 1 To nRc
Cells(j, i).Copy Destination:=.Cells(nRow, i).Resize(nConti)
nRow = nRow + nConti
Next j
nConti = nConti * nRc
Next i
With .Resize(nConti / nRc)
For i = 3 To tnFld
Range(.Cells(1, i), .Cells(1, i).End(xlDown)).Copy Destination:=.Columns(i)
Next i
End With
End With
End Sub
ーーー
Private Sub test00()を実行。
F、G、H、I列の最初の13行だけ表示してみると、
アアアア
アアアイ
アアアウ
アアアエ
アアアオ
アアアカ
アアアキ
アアアク
アアアケ
アアアコ
アアアア
アアアイ
アアアウ
・・
以下略。
Sub PrintCombi(ByVal rSrc As Range)
以下のコードは
https://oshiete.goo.ne.jp/qa/8315974.html
をそっくり借用。Private Sub test00()以下は、わかりやすい方法に改変。
言いたいことは、「ありふれた課題は、WEBをさがせば、コードが見つかることが多い」ということ。
お礼コメント
961awaawa

お礼率 91% (90/98)

imogashiさん。色々なやり方があることがわかりました。ありがとうございました。
投稿日時 - 2018-12-07 04:43:38
  • 回答No.1

ベストアンサー率 63% (145/230)

Excel(エクセル) カテゴリマスター
分かりやすくするため
あえて、A,B,C,D列に使う文字種を変えてみました。
添付画像のようなイメージでしょうか。

=INDEX($A$1:$A$10,MID(TEXT(ROW()-1,"0000"),1,1)+1,1) &INDEX($B$1:$B$10,MID(TEXT(ROW()-1,"0000"),2,1)+1,1) &INDEX($C$1:$C$10,MID(TEXT(ROW()-1,"0000"),3,1)+1,1) & INDEX($D$1:$D$10,MID(TEXT(ROW()-1,"0000"),4,1)+1,1)
↑がF1に埋める計算式です。

ざっくり説明すれば、F1~F10000のそれぞれ、
行番号-1を求め、4桁固定長の数字に変換。
1文字目から4文字目までの4つの数値にそれぞれ1を加える。
その数値で
A,B,C,D列を縦方向に引き、文字を求め
それらを文字連結しました。
補足コメント
961awaawa

お礼率 91% (90/98)

こんにちはHohoPapaさん。
4桁固定ができてないんですがどの様にすれば良いでしょうか。
何か足らないんでしょうか?
投稿日時 - 2018-12-07 13:00:54
お礼コメント
961awaawa

お礼率 91% (90/98)

一番最初の解答ありがとうございます。HohoPapaさん。私はこういったことに全くなれてないんですが、HohoPapaさんならこういったことをどの様な形だとやり易いと思われるんでしょうか?
私は私自身が質問した形が決して良いとは思っておりません。
例えば、競馬の三連単になるんですがご自身で見やすく扱いやすくするには何か推奨とかは有りますかね?(笑。

(お礼に変な質問を乗っけて失礼なんですが…)(笑
投稿日時 - 2018-12-07 05:01:59
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ