У меня тот же вопрос, что и здесь: VBA подсчитывает несколько дубликатов в массиве , но я не нашел ответа и со своей репутацией не могу оставить комментарий там. У меня есть массив из 150 чисел, которые могут содержать повторяющиеся числа от 1 до 50. Не всегда есть все 50 чисел в массиве. Пример вывода того, что мне нужно: - 10 раз: 1, 2; - 20 раз: 3, 4 и т. Д .; - 0 раз: 5, 6, 7 и т. Д. c. Мне нужно подсчитать сколько комбинаций повторяющихся чисел у него есть и какие числа находятся в этих комбинациях, включая нулевое вхождение - каких чисел нет в массиве. В упомянутом выше посте есть решения - но только если вы знаете, сколько комбинаций дубликатов есть - и я не знаю - может быть 1 (все 150 чисел равны) - ... - 20 ... вверх до 50 комбинаций, если он содержит все числа от 1 до 50 три раза каждое. Примите во внимание любую помощь и совет, как хранить выходные данные - наконец, это должно быть записано на лист в указанном выше формате: [times] - [numbers] (здесь может быть строка, пример "5 - 6 - 7").
Вот то, что я сделал для 5 комбинаций, но сделаю 50 случаев, а затем проверим 50 строк, если они пусты или содержат что-то для записи в выходной файл, не очень хороший вариант ...
For i = 1 To totalNumbers 'my numbers from 1 to 50 or any other number
numberCount = 0
For j = 0 To UBound(friendsArray) 'my array of any size (in question said 150)
If i = friendsArray(j) Then
numberCount = numberCount + 1
End If
Next j
Select Case numberCount
Case 0
zeroString = zeroString & i & " - "
Case 1
oneString = oneString & i & " - "
Case 2
twoString = twoString & i & " - "
Case 3
threeString = threeString & i & " - "
Case 4
fourString = fourString & i & " - "
Case 5
fiveString = fiveString & i & " - "
Case Else
End Select
Next i