2012-05-15 36 views
1

我需要在Excel中的兩個邊界之間創建一個隨機數列表。訣竅是數字需要很奇怪。所以我不能只用randbetween()。我應該只使用類似=if(a1 % 2 =0) then a1=a1+1的東西。我不知道在Excel中的語法,但我得到的是如果數字是偶數(mod 2 = 0),然後添加一個。Rand返回唯一的數字

+1

Excel沒有這種語法。 excel的方式是重複表達式('if( = + 1,)),它適用於確定性表達式,但在第二次調用時顯然會返回一個不同的隨機數。 – GSerg

+0

陷阱。我想我知道我要做什麼,謝謝。 – wootscootinboogie

回答

2

使用一個小技巧。 CEILINGFLOOR有第二個參數,這是你需要的。

=CEILING(RANDBETWEEN(...),2)-1 
+0

這非常聰明。 – wootscootinboogie

+0

您還需要確保上限值的rand是下一個偶數值以消除偏差。 :) – vhallac

1

你可以得到一個隨機數ň有不同的範圍,並計算2 * ñ +1您的單元格的值。我認爲下限是0(或1),所以你的新範圍從0開始(如果沒有,請看你如何計算上限)。對於上限,如果你想要m作爲你最大的奇數整數,那麼你的上限是(明顯)(m-1)/2

舉一個例子,假設你需要15到27之間的奇數。你的rand間的下界將是(15-1)/2 = 7,上界將是(27-1)/2 = 13。因此,單元格公式將爲=2*randbetween(7, 13)+1

+0

我沒有清楚地說明。 – wootscootinboogie

+0

@wootscootinboogie我會澄清一點,並添加一個例子。 – vhallac

+0

@wootscootinboogie任何乘以2的數字都是偶數,因此將該數字加1或減1會得到一個奇數。但是你必須改變randbetween()範圍才能工作。 – csl

0

我知道我在比賽後期,但不會這樣簡單。

A1 = randbetween(0,100) 
B1 = if(mod(A1,2)=0,A1+1,A1) 
+0

我不認爲你想像這樣重複蘭德之間。 – vhallac

+0

同意,該公式可能會產生奇數或偶數.... –

+0

是啊,只是做了更多的測試和修復答案。謝謝 –

1

您也可以使用RAND()這裏是與早期的Excel版本兼容,一般這個公式會給你一個均勻分佈,假設C2包含下限和D2上(包括奇數)

=INT(RAND()*((D$2-C$2)/2+1))*2+C$2