2015-04-16 75 views
1

我有一張帶有列的表格,每列都包含客戶聯繫信息。我也有一個公式可以找到使用多個標準的電話號碼:customer ID,type(手機,家庭等)和primary是/否。問題是這種信息可能會出現好幾次,但使用不同的日期,在這種情況下需要選擇最新的事件。當前CSE公式爲:使用多個條件查找值

=INDEX($C$6:$BZ$18;10;MATCH(<client_ID>;IF(($C$8:$BZ$8=<client_ID>)*($C$17:$BZ$17="home")*($C$18:$BZ$18="Y");$C$8:$BZ$8);0)) 

其中
$ C $ 6:$ BZ $ 18包含所有數據
$ C $ 8:$ BZ $ 8包含所有客戶ID
$ C $ 17:$ BZ $ 17含有的類型的電話號碼的
$ C $ 18:$ BZ $ 18包含這個號碼是否是該類型的主號
$ C $ 8:$ BZ $ 8包含一個數被輸入

的數據看起來像這樣的日期:

B    C   D 
--------------------------------------------------------------------- 
8 CLIENTID  |Client1 |Client1 | 
9 other  |   |   | 
10 other  |   |   | 
11 other  |   |   | 
12 other  |   |   | 
13 other  |   |   | 
14 other  |   |   | 
15 PHONE NUMBER ||1234567890 | 
16 DATE   |2015-04-15 |2015-04-16 | 
17 TYPE   |Home  |Home  | 
18 Primary  |Y   |Y   | 

上述公式選擇電話號碼,但它需要選擇1234567890,因爲這是最新的條目。

關於如何從這裏開始的任何想法?

+1

請提供您的數據的屏幕截圖;圖像或鏈接到圖像,以便我們可以看到。並提供預期的結果。 – AHC

回答

0

日期的基礎值是數字,所以我們可以在MATCH function搜索不可能的高數字而不尋找完全匹配的情況下查找連續右側的最遠日期。

Last number in row

陣列式在F6是,

=INDEX($B$8:$BZ$18, MATCH(F$5, $B$8:$B$18, 0), MATCH(1E+99, IF($B$8:$BZ$8=$C6, IF($B$17:$BZ$17=$D6, IF($B$18:$BZ$18=$E6, $B$16:$BZ$16))))) 

數組公式需要與Ctrl鍵 + + Enter↵完成。

如果您的日期按升序排列(從左到右),則必須查找完全匹配。三個標準的僞MAXIF公式可以將其返回到修改後的原始公式中以查找完全匹配。如果最大日期重複,則返回第一個日期。

=INDEX($C$8:$BZ$18, MATCH(F$5, $B$8:$B$18, 0), MATCH(MAX(INDEX($C$16:$BZ$16*($C$8:$BZ$8=$C6)*($C$17:$BZ$17=$D6)*($C$18:$BZ$18=$E6), ,)), IF($C$8:$BZ$8=$C6, IF($C$17:$BZ$17=$D6, IF($C$18:$BZ$18=$E6, $C$16:$BZ$16))), 0)) 

爲了提供一些沒有錯誤的數學,我將計算範圍轉移到了C:BZ。數組公式仍然需要用來完成。Ctrl + Shift + Enter↵

通過適當地鎖定行,列或兩個單元格地址,我們可以使用列標題來識別與列B不同的類別,就像我使用DATA LINE所做的一樣。該公式可以簡單地填寫正確。

+0

感謝您的回答!它可以工作,但是這個公式假定所有的日期都是按升序排列的。是否有可能允許隨機訂單? – TheHoff

+0

@TheHoff - 它會爲公式添加幾十個字符,但最大日期可以在完全匹配時查找。 – Jeeped

+0

對不起,我試圖想出一個解決方案,但它不工作。你能告訴我如何調整公式嗎? – TheHoff