Помогите, пожалуйста, решить проблему. Есть таблица, в которой 17 строк и 17 столбцов. Одна из строк - строка заголовка с изначально заданными значениями, один из столбцов - также столбец заголовка с изначально заданными значениями. В каждой из ячеек заголовка по 5 букв.
Остальные ячейки таблицы (16*16) образованы путём слияния пяти букв из заголовка строки и пяти букв из заголовка столбца. Таким образом, в каждой из 256 ячеек - по 10 букв. Сначала 2 буквы a, потом 2 буквы c, потом 2 буквы e, потом 2 буквы g, потом 2 буквы p. Но регистр этих букв может быть самым разным (например, в паре букв g - либо обе большие GG, либо обе маленькие gg, либо одна первая большая, а вторая маленькая Gg)
Подскажите, пожалуйста, как с помощью какой-нибудь формулы можно вывсети на лист все возможные встречающиеся варианты (напр., AACcEEGGPP, AaCCEeGGPP, AACCEEGGPp и все остальные) и чтобы было подсчитано количество всех вариантов в таблице.
Спасибо.
Здравствуйте.
Помогите, пожалуйста, решить проблему. Есть таблица, в которой 17 строк и 17 столбцов. Одна из строк - строка заголовка с изначально заданными значениями, один из столбцов - также столбец заголовка с изначально заданными значениями. В каждой из ячеек заголовка по 5 букв.
Остальные ячейки таблицы (16*16) образованы путём слияния пяти букв из заголовка строки и пяти букв из заголовка столбца. Таким образом, в каждой из 256 ячеек - по 10 букв. Сначала 2 буквы a, потом 2 буквы c, потом 2 буквы e, потом 2 буквы g, потом 2 буквы p. Но регистр этих букв может быть самым разным (например, в паре букв g - либо обе большие GG, либо обе маленькие gg, либо одна первая большая, а вторая маленькая Gg)
Подскажите, пожалуйста, как с помощью какой-нибудь формулы можно вывсети на лист все возможные встречающиеся варианты (напр., AACcEEGGPP, AaCCEeGGPP, AACCEEGGPp и все остальные) и чтобы было подсчитано количество всех вариантов в таблице.
Sub Мяу() Dim i&, j&, arr arr = [B2:Q17].Value With CreateObject("Scripting.Dictionary") .CompareMode = vbBinaryCompare For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) .Item(arr(i, j)) = 1 Next Next [A20].Resize(, .Count) = .keys [A21] = .Count End With End Sub
[/vba]
[vba]
Код
Sub Мяу() Dim i&, j&, arr arr = [B2:Q17].Value With CreateObject("Scripting.Dictionary") .CompareMode = vbBinaryCompare For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) .Item(arr(i, j)) = 1 Next Next [A20].Resize(, .Count) = .keys [A21] = .Count End With End Sub
Спасибо, RAN. Наверно, я не совсем правильно изъяснился.
Этот макрос вывел все варианты сочетаний букв (их получилось 81), и вывел срочкой ниже как раз число 81 - количество вариантов. Первая часть как раз то, что мне нужно. А по поводу количества, то мне надо узнать, сколько раз в таблице встречатся сочетание AACcEEGGPP, сколько раз сочетание AACCEeGGPP, сколько раз сочетание AACcEEGgPP и так далее (ещё 78 сочетаний).
Это как-нибудь можно сделать?
Спасибо.
Спасибо, RAN. Наверно, я не совсем правильно изъяснился.
Этот макрос вывел все варианты сочетаний букв (их получилось 81), и вывел срочкой ниже как раз число 81 - количество вариантов. Первая часть как раз то, что мне нужно. А по поводу количества, то мне надо узнать, сколько раз в таблице встречатся сочетание AACcEEGGPP, сколько раз сочетание AACCEeGGPP, сколько раз сочетание AACcEEGgPP и так далее (ещё 78 сочетаний).
Sub Мяу() Dim i&, j&, arr arr = [B2:Q17].Value With CreateObject("Scripting.Dictionary") .CompareMode = vbBinaryCompare For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) .Item(arr(i, j)) = .Item(arr(i, j)) + 1 Next Next [A20].Resize(, .Count) = .keys [A21].Resize(, .Count) = .items [A22] = .Count End With End Sub
[/vba]
[vba]
Код
Sub Мяу() Dim i&, j&, arr arr = [B2:Q17].Value With CreateObject("Scripting.Dictionary") .CompareMode = vbBinaryCompare For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) .Item(arr(i, j)) = .Item(arr(i, j)) + 1 Next Next [A20].Resize(, .Count) = .keys [A21].Resize(, .Count) = .items [A22] = .Count End With End Sub