2014-02-08 41 views
-3

我正在嘗試在Excel中編寫一個程序,該程序查找不在給定列表中的最小非負整數並將其放入單元格中。該列表將只包含非負整數。我可以做到這一點,如果列表中的值有一個上限可以很容易地使用一系列if語句,但列表可以(並且將)包含任意大的值。我對使用Excel很陌生,因此如果您能提供一個公式,我可以簡單地將它放入單元格(即,如果可能,不需要宏),我將不勝感激。提前感謝您提供有關此主題的任何幫助。查找最小非負整數不在給定列表中

實例:

  • 列表= {0,1,2,3,4},輸出= 5
  • 列表= {0,1,2,4,7},輸出= 3
  • 列表= {1,2,3,4,7},輸出= 0
+3

可不可以給你想要一個例子輸入和輸出?根據你的描述,我可以回答「-100000」。對? –

+1

你在問什麼?對我來說不太清楚 – PKumar

+0

@彭不對,我只能回答「-100001」:-) – pnuts

回答

1

鑑於你編輯的問題,那麼假設你將有至少有一個整數範圍內丟失0至99試試這個公式,其中列表是A1:A5

=SMALL(IF(COUNTIF(A1:A5,ROW(INDIRECT("1:100"))-1)=0,ROW(INDIRECT("1:100"))-1),1)

CTRL + SHIFT證實+ ENTER

這個版本也會給你同樣的結果沒有「數組輸入」

=LOOKUP(2,1/(COUNTIF(A1:A5,100-ROW(INDIRECT("1:100")))=0),100-ROW(INDIRECT("1:100")))

下圖給出了爲每個示例列出的結果例子:

enter image description here

-1

MIN(A:A)將讓你在A列中最小的數字 - 只是減去1(或任意數量真的)獲得數字小於其中的任何一個(或使用MAX獲得最大)。根據您的數據所在,根據需要更新公式。如果結果需要是一個整數,只需ROUNDDOWN吧。

+0

如何減去2或3或4 ...或者如果MIN(A:A)返回7.7? – pnuts

+0

固定爲特定於整數值。 – Krease