• ベストアンサー

エクセルでの組み合わせ表を作りたのですが

エクセルに A列 山田さん 鈴木さん 佐藤さん 加藤さん 山本さん 佐々木さん 長野さん 平野さんがいます。 この中から3人を選びたいのですが、 全部の組み合わせをエクセルで表示することはできますか? 実際には20人ぐらいいるますが・・・ 使用しているエクセルは2010です。 また4人を選んだ場合の全組み合わせの時も教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

遊びで作って見ました。 Excel2003ですが、2010でも大丈夫だと思います。 A1から右に「山田さん」「鈴木さん」… と、8名分の名前を入れて下のマクロを動かします。 すると、2行目以降に選ばれた人の列に「1」を入れた表を作成します。 メンバー数、選ぶ人数が変わる時はマクロ中の数字を変えてください Sub Sample()   Dim nTotal As Long   Dim nSelect As Long   Dim nRow As Long   Dim i As Long   Dim j As Long        nTotal = 8 'メンバー人数   nSelect = 3 '選ぶ人数      nRow = 2   For i = ((2 ^ nSelect) - 1) To (2 ^ nTotal)     If fCountbit(i) = nSelect Then       For j = 1 To nTotal         If (i And 2 ^ (j - 1)) > 0 Then           Cells(nRow, j) = 1         End If       Next j       nRow = nRow + 1     End If   Next i End Sub Function fCountbit(nTarget As Long) As Long   Dim nBits As Long      nBits = nTarget   nBits = (nBits And &H55555555) + (Int(nBits / 2) And &H55555555)   nBits = (nBits And &H33333333) + (Int(nBits / (2 ^ 2)) And &H33333333)   nBits = (nBits And &HF0F0F0F) + (Int(nBits / (2 ^ 4)) And &HF0F0F0F)   nBits = (nBits And &HFF00FF) + (Int(nBits / (2 ^ 8)) And &HFF00FF)   nBits = (nBits And &HFFFF) + (Int(nBits / (2 ^ 16)) And &HFFFF)   fCountbit = nBits End Function

noname#244246
質問者

お礼

おかげさまでできました。 ありがとうございます

関連するQ&A

専門家に質問してみよう