Benzersiz sayı

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,080
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Arkadaşlar, sayın hocalarım şöyle bir kod yazmaya çalıştım. Sayısaldan zengin olmaya karar verdim.
Sayı türetiyor ama nadirde olsa aynı sayı çıkıyor. Benzersiz olması için nasıl bir ekleme yapmalıyım?
Teşekkür ederim.
Saygılarımla.

Kod:
Sub sayisal()
For i = 1 To 6
    Dim min
    Dim max
    Dim sonuc
    Randomize
    min = 1
    max = 99
    Sheets("Sayfa1").Range("A" & i) = Int(min + Rnd * (max - min))
Next
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,618
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşım,
Kod:
Sub sayisal()
For i = 1 To 6
    Dim min
    Dim max
    Dim sonuc
99:
    Randomize
    min = 1
    max = 99
        zz = Int(Rnd * (max - min))
        yy = WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(i, 1)), zz)
        If yy > 1 Then
            GoTo 99
          Else
            Cells(i, 1) = zz
        End If
Next
Range("A1:A6").Sort [A1], Order1:=xlAscending
End Sub
Sanırım bu işinizi görür. İyi çalışmalar
Not: Yine de tekrarlayabiliyor. Belki başka bir arkadaşımız da destek olur.
 
Son düzenleme:
Katılım
21 Aralık 2016
Mesajlar
692
Excel Vers. ve Dili
Office 365 TR
365 kullanıcıları için, makroya alternatif olarak formülle çözüm olması açısından yazıyorum...

Excel 365 kullanıcısı olduğunuzdan
Excel 365 işlevleriyle, Tek hücrede formül ile komple dökülmeli olarak

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

1

Sayı Adet​

6

Tek Kolon

Çok Kolon​

1

2

3

4

5

6

7

8

9

10

2

Mini​

1

26​

1

33​

4​

14​

12​

4​

15​

5​

63​

7​

14​

3

Maxi​

99

51​

2

44​

21​

56​

21​

17​

20​

20​

67​

13​

34​

4

Kolon Adet​

10

60​

3

46​

28​

61​

46​

53​

29​

26​

79​

17​

69​

5

64​

4

50​

39​

86​

52​

60​

44​

30​

80​

55​

81​

6

79​

5

63​

87​

89​

60​

75​

50​

35​

83​

72​

93​

7

94​

6

98​

99​

91​

83​

93​

88​

51​

95​

87​

94​


Tek kolon için
Kod:
=SIRALA(AL(SIRALAÖLÇÜT(SIRALI(B3-B2+1;;B2);RASGDİZİ(B3-B2+1));B1))
Çok kolon için
(Kolon Numaraları ve Sayı Numaraları başlıkları da dahil olarak)
Kod:
=REDUCE(DÜŞEYYIĞ("";SIRALI(B1));SIRALI(B4);LAMBDA(x;y;YATAYYIĞ(x;DÜŞEYYIĞ(y;SIRALA(AL(SIRALAÖLÇÜT(SIRALI(B3-B2+1;;B2);RASGDİZİ(B3-B2+1));B1))))))
Örnek dosyayı da ekliyorum.
 
Son düzenleme:

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,080
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
365 kullanıcıları için, makroya alternatif olarak formülle çözüm olması açısından yazıyorum...

Excel 365 kullanıcısı olduğunuzdan
Excel 365 işlevleriyle, Tek hücrede formül ile komple dökülmeli olarak

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

1

Sayı Adet​

6

Tek Kolon

Çok Kolon​

1

2

3

4

5

6

7

8

9

10

2

Mini​

1

26​

1

33​

4​

14​

12​

4​

15​

5​

63​

7​

14​

3

Maxi​

99

51​

2

44​

21​

56​

21​

17​

20​

20​

67​

13​

34​

4

Kolon Adet​

10

60​

3

46​

28​

61​

46​

53​

29​

26​

79​

17​

69​

5

64​

4

50​

39​

86​

52​

60​

44​

30​

80​

55​

81​

6

79​

5

63​

87​

89​

60​

75​

50​

35​

83​

72​

93​

7

94​

6

98​

99​

91​

83​

93​

88​

51​

95​

87​

94​


Tek kolon için

Kod:
=SIRALA(AL(SIRALAÖLÇÜT(SIRALI(B3-B2+1;;B2);RASGDİZİ(B3-B2+1));B1))
Çok kolon için
(Kolon Numaraları ve Sayı Numaraları başlıkları da dahil olarak)
Kod:
=REDUCE(DÜŞEYYIĞ("";SIRALI(B1));SIRALI(B4);LAMBDA(x;y;YATAYYIĞ(x;DÜŞEYYIĞ(y;SIRALA(AL(SIRALAÖLÇÜT(SIRALI(B3-B2+1;;B2);RASGDİZİ(B3-B2+1));B1))))))
Örnek dosyayı da ekliyorum.
Hocam deneyeceğim, çıkarsa %15 veririm :)
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,080
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Arkadaşlar, sayın hocalarım, kodumu kullanıp sayısal oynayayım dedim. Ne yaptımsa sayılar benzersiz olmuyor.
Yardımınızı rica ediyorum.
Teşekkür ederim.
Saygılarımla.

Kod:
Sub sayi_uret()
For i = 1 To Sheets("Sayfa1").Range("D3")
    Dim min
    Dim max
    Dim sonuc
    Randomize
    min = Sheets("Sayfa1").Range("D1")
    max = Sheets("Sayfa1").Range("D2")
    Sheets("Sayfa1").Range("A" & i) = Int(min + Rnd * (max - min))
Next
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,618
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
For i = 1 To 6 'Sheets("Sayfa1").Range("D3")
Deneyiniz, başarılarınızın devamını dilerim
 
Üst