Мой диапазон данных от А1 до А9.

Ячейка А2, А4, А6, А8 - это пустая ячейка.

A1, A3, A5, A7, A9 имеют значения 1, 2, 3, 4, 5.

Я хочу создать уникальное случайное число в пустых ячейках, таких как 6, 7, 8 и 9. Я использую следующую формулу, которая не работает, пожалуйста, помогите.

=IF(A1<>"","",RANDBETWEEN(6,9)) 

2 ответа2

1

С такими данными, как:

Попробуйте этот короткий макрос:

Sub croupier()
    Dim ary(1 To 4) As Variant
    ary(1) = 6
    ary(2) = 7
    ary(3) = 8
    ary(4) = 9
    Call Shuffle(ary)
    Range("A2") = ary(1)
    Range("A4") = ary(2)
    Range("A6") = ary(3)
    Range("A8") = ary(4)
End Sub

Public Sub Shuffle(InOut() As Variant)
    Dim I As Long, J As Long
    Dim tempF As Double, Temp As Variant

    Hi = UBound(InOut)
    Low = LBound(InOut)
    ReDim Helper(Low To Hi) As Double
    Randomize

    For I = Low To Hi
        Helper(I) = Rnd
    Next I


    J = (Hi - Low + 1) \ 2
    Do While J > 0
        For I = Low To Hi - J
          If Helper(I) > Helper(I + J) Then
            tempF = Helper(I)
            Helper(I) = Helper(I + J)
            Helper(I + J) = tempF
            Temp = InOut(I)
            InOut(I) = InOut(I + J)
            InOut(I + J) = Temp
          End If
        Next I
        For I = Hi - J To Low Step -1
          If Helper(I) > Helper(I + J) Then
            tempF = Helper(I)
            Helper(I) = Helper(I + J)
            Helper(I + J) = tempF
            Temp = InOut(I)
            InOut(I) = InOut(I + J)
            InOut(I + J) = Temp
          End If
        Next I
        J = J \ 2
    Loop
End Sub
-1

Привет, друзья, у меня тоже есть решение. Поскольку использование Rand или Randbetween даже с Rank не выглядит полезным, потому что после любого упражнения на листе Excel переназначает случайный список.
Эти две формулы создают список, который я искал.

B2 = IF(A2<>"",(A2+0),A1+5)

B2 = IF(NOT(ISNUMBER(B2)),0,IF(A2<>"",(A2+0),A1+5))

Примечание: оригинальный список от А2 до А10.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .