ここから本文です

エクセルの組み合わせについて! 5つの列にそれぞれAからOまでのアルファベット...

xen********さん

2017/11/209:47:42

エクセルの組み合わせについて!

5つの列にそれぞれAからOまでのアルファベットがあるとして、その全部の組み合わせを出したいのですが、可能ですか?
AAAAA

OOOOO
かなりの数になる

のは承知しています。よろしくお願いします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
104
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2017/11/316:17:11

最近のExcelなら、どこかに
=BASE(DECIMAL(BASE(ROW(A1)-1,15),25)+4069010,25)
と入れて、これを759375行分コピーすればいいです。

たとえば下図のようにE1セル以下に入れるとしたら、E1:E759375を選択しておいてから、数式バーに上記の数式を貼り付け、CTRLを押しながら、ENTERで、完成です。

BASE関数、DECIMAL関数は Excel 2013 以降でしかサポートされていなかったと思います。
それより古いバージョンの場合は、この方法は使えません。

最近のExcelなら、どこかに...

  • アバター

    ID非公開さん

    2017/11/316:20:22

    なお、4069010がマジックナンバーですが、これは、25進数のAAAAAを10進数に変換したものです。
    0,1,2,....,759374 を 15進数に変換したものを 25進数とみて、25進数のAAAAAを足せば、A~Oの文字を使った15進数表記の0,1,2,....,759374になりますよね。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

har********さん

2017/11/311:31:29

関数でいけます。
全部の組み合わせは 15^5 = 759375 ですから大したことはありません。
式をドラッグするだけでも大変かもしれません。

アルファベットを表示したい範囲の右上のセルに次の式を入れてください。
図ではF14です。式を少し変えればどこでもいいです。

=CHAR(MOD(TRUNC((ROW()-14)/15^(6-COLUMN())),15)+65)

この式を左へドラッグコピーして、
次にB14:F14を選択して下へドラッグコピーします。
-----------------
・範囲を変えるには
ROW()-14の14はアルファベットを表示したい範囲の先頭の行番号です。
ROW()の直後の数値を範囲の先頭の行番号に変えます。

6-COLUMN()の6はアルファベットを表示したい範囲の右端の列番号です。
図ではFは6列目です。
COLUMN()の直前の数値を範囲の右端の列番号に変えます。

・最初のアルファベットを変えるには
式の末尾の+65は表示したいアルファベットの最初の文字の文字コードです。
「A」の文字コードは65です。
例:ここを66に変えると「B」から始まります。

・アルファベットの範囲を変えるには
式の中の/15^(と,15)の15は表示するアルファベットの範囲の個数です。
図では「A」~「O」まで15個あります。

例:ここを2に変えると
A A A A A
A A A A B
A A A B A
A A A B B
A A B A A
A A B A B
A A B B A
A A B B B
・・・・
と繰り返します。
--------------------------
関数の説明
ROW() セルの行番号を返します。
COLUMN() セルの列番号を返します。
TRUNC() 小数部を切り捨てて整数にします。
MOD(x,y) xをyで割った余りを返します。
CHAR() 文字コードを実際の文字にします。
--------
(ROW()-14)は図では14行から始まるので
0
1
2
...
です。

(6-COLUMN())は図ではB(第2列)から始まるので
4, 3, 2, 1, 0
です。
--------
まずMODの式から

1行目は左の列から
B14: MOD(TRUNC(0/15^4),15) = 0
行番号を15進法の数値とみなして右から5桁目の数値を取り出しています。
C14: MOD(TRUNC(0/15^3),15) = 0
行番号を15進法の数値とみなして右から4桁目の数値を取り出しています。
D14: MOD(TRUNC(0/15^2),15) = 0
行番号を15進法の数値とみなして右から3桁目の数値を取り出しています。
E14: MOD(TRUNC(0/15^1),15) = 0
行番号を15進法の数値とみなして右から2桁目の数値を取り出しています。
F14: MOD(TRUNC(0/15^0),15) = 0
行番号を15進法の数値とみなして右から1桁目の数値を取り出しています。

2行目は左の列から
B15: MOD(TRUNC(1/15^4),15) = 0
行番号を15進法の数値とみなして右から5桁目の数値を取り出しています。
C15: MOD(TRUNC(1/15^3),15) = 0
行番号を15進法の数値とみなして右から4桁目の数値を取り出しています。
D15: MOD(TRUNC(1/15^2),15) = 0
行番号を15進法の数値とみなして右から3桁目の数値を取り出しています。
E15: MOD(TRUNC(1/15^1),15) = 0
行番号を15進法の数値とみなして右から2桁目の数値を取り出しています。
F15: MOD(TRUNC(1/15^0),15) = 1
行番号を15進法の数値とみなして右から1桁目の数値を取り出しています。
・・・
16行目は左の列から
B29: MOD(TRUNC(15/15^4),15) = 0
行番号を15進法の数値とみなして右から5桁目の数値を取り出しています。
C29: MOD(TRUNC(15/15^3),15) = 0
行番号を15進法の数値とみなして右から4桁目の数値を取り出しています。
D29: MOD(TRUNC(15/15^2),15) = 0
行番号を15進法の数値とみなして右から3桁目の数値を取り出しています。
E29: MOD(TRUNC(15/15^1),15) = 1
行番号を15進法の数値とみなして右から2桁目の数値を取り出しています。
F29: MOD(TRUNC(15/15^0),15) = 0
行番号を15進法の数値とみなして右から1桁目の数値を取り出しています。
・・・
・・・
・・・
759375行目は左の列から
B759388: MOD(TRUNC(759374/15^4),15) = 14
行番号を15進法の数値とみなして右から5桁目の数値を取り出しています。
C759388: MOD(TRUNC(759374/15^3),15) = 14
行番号を15進法の数値とみなして右から4桁目の数値を取り出しています。
D759388: MOD(TRUNC(759374/15^2),15) = 14
行番号を15進法の数値とみなして右から3桁目の数値を取り出しています。
E759388: MOD(TRUNC(759374/15^1),15) = 14
行番号を15進法の数値とみなして右から2桁目の数値を取り出しています。
F759388: MOD(TRUNC(759374/15^0),15) = 14
行番号を15進法の数値とみなして右から1桁目の数値を取り出しています。

----------
後は取り出した数値から文字へ変換しています。

1行目は左の列から
=CHAR(0+65),=CHAR(0+65),=CHAR(0+65),=CHAR(0+65),=CHAR(0+65) -> A A A A A

2行目は左の列から
=CHAR(0+65),=CHAR(0+65),=CHAR(0+65),=CHAR(0+65),=CHAR(1+65) -> A A A A B

16行目は左の列から
=CHAR(0+65),=CHAR(0+65),=CHAR(0+65),=CHAR(1+65),=CHAR(0+65) -> A A A B A

759375行目は左の列から
=CHAR(14+65),=CHAR(14+65),=CHAR(14+65),=CHAR(14+65),=CHAR(14+65) -> O O O O O

以上。

関数でいけます。
全部の組み合わせは 15^5 = 759375 ですから大したことはありません。...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

kik********さん

2017/11/211:43:18

画像の様に設定後、

エクセルに詳しい方に質問です。 5項目から、総
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q101811222...

ここに回答した Samp1 を標準モジュールに記述して、
Samp1 を実行してみます

画像の様に設定後、

エクセルに詳しい方に質問です。 5項目から、総...

hdu********さん

2017/11/211:05:41

15の5乗ですね。759375パターンかぁ。
マクロや数式で可能ですね。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる