2012-11-21 106 views
2

我試圖設置兩個系統之間的錯誤檢查,並需要比較不同格式的星期數。一個系統以文本格式生成周編號,例如「8-15, 18, 31-32」,另一個系統生成離散值。我如何看待一個數值如16是否落在如上所述的多個範圍內?Excel:搜索單元格內多個數組內的值

這是一個更大問題的一部分,我正在檢查一個系統中的參考編號,日期,時間和星期編號(例如XXX111 Weds 9:00 9)與另一個系統的輸出(例如XXX111 Wed 9:00 7:11, 13, 16, 52-63 or XXX111 Thu 9:00 5, 6, 11-16)的輸出。儘管大量的搜索我已經打到了上面的牆,所以任何幫助將不勝感激。

如果可能,我寧可不要使用VBA。預先感謝您的智慧。

回答

0

假設:

  1. 7:117-11
  2. 6353
  3. 一個數字不是範圍的一部分(例如18)是不成問題的
  4. 範圍是在文本格式

我希望以下幫助或至少是「一個在正確的方向步驟」:

解析組件

例如,對於8-15, 18, 31-32,粘貼到一個小區(比如A1)和數據>數據工具 - 文本到列>分隔符>下一步>勾選逗號,空格和處理連續分隔符爲一>下一步>按需選擇列>爲每個選擇文本>完成

可能更容易處理單列所以選擇數據,複製>選擇A2>選擇性粘貼>移調>確定並刪除Row1的內容。

乙添加搜索值(16)插入B1

C複製下面的公式爲B2和複製下來的要求:

=AND(B$1>=VALUE(LEFT($A2,SEARCH("-",$A2)-1)),B$1<=VALUE(RIGHT($A2,LEN($A2)-SEARCH("-",$A2)))))

結果應該是TRUE其中搜索值位於離散範圍的範圍內或範圍內:

SO13491293 example

公式使用連字符'識別'離散範圍。 SEARCH會查找它所在的位置(因爲它的任何一邊都可能有一個或兩個字符)。 LEFT和RIGHT用於下限和上限(在RIGHT的情況下與LEN一起用於確定上限是一個還是兩個字符)。 VALUE被要求將文本轉換成可以等同於搜索值的東西。並且是爲了在確定是否在'範圍內'時考慮這兩個邊界的過程。

「我寧願不使用VBA」 - 但可能是明智的!

但是,使用某些固定引用($)應該使其比使用標準公式稍微簡單一些,因爲可以通過複製公式來查詢給定的離散範圍(可以在ColumnA中追加)來查詢各種搜索值根據需要向右/向下輸入(如號碼格式)Row1中的進一步搜索值。