[英]Excels INDEX MATCH - Finding multiple matches
------A ----------------- B ----------------------C ------------------------D
1 --First--------------Last-----------------Start Date--------------End Date
2 --John--------------Smith--------------08/08/2014------------01/01/2015
3---John--------------Smith--------------08/11/2014------------17/11/2014
4---John--------------Smith--------------06/06/2014------------23/12/2014
5---Abel--------------Jones--------------14/05/2014------------29/04/2015
6---Abel--------------Jones--------------04/07/2014------------26/04/2015
有時在我的電子表格上我得到重復的名字。 例如上面的表(隨機數據)有3個John和2個Abel。 這些名稱是開始日期和結束日期。 如果我的開始日期或結束日期早於或晚於該名稱的上一個條目,我會通過執行來計算最長范圍(John Smith)
=MAX($D2:$D4)-MIN($C2:$C4)
這將給209天。
此外,我希望公式自動識別名稱是否在范圍內有重復,如果是,則檢索日期。 為此,我按如下方式執行INDEX MATCH功能。
=INDEX(C:C,
MATCH(1,INDEX((A:A=$A3)*(B:B=$B3),0),0))
這應該是08/08/2014。
然后,我將兩個公式組合在一起,搜索比較匹配開始日期和結束日期的名字和姓氏,以找到最長的日期范圍。
=MAX(
(INDEX($C:$C,
MATCH(1,INDEX(($A:$A=$A4)*($B:$B=$B4),0),0)))
:$D4)
-
MIN(
(INDEX($D:$D,
MATCH(1,INDEX(($A:$A=$A4)*($B:$B=$B4),0),0)))
:$C4)
這又給出了209。
我現在使用這個公式的問題是,當INDEX MATCH函數掃描名稱列表以找到重復時,如果是,它將只匹配第一個。 如果有多個副本,它將忽略它。 表中有3個John Smiths,我希望公式檢查所有重復項之間的最長范圍。 這是否有意義,這可能嗎?
在使用數組公式時,我會更加手術地定義范圍。 給定小數據集,此數組公式給出了預期結果:
=MAX(IF(INDEX($A$2:$A$6&" "&$B$2:$B$6, 0) = A2&" "&B2, $D$2:$D$6)) - MIN(IF(INDEX($A$2:$A$6&" "&$B$2:$B$6, 0) = A2&" "&B2, $C$2:$C$6))
...通過Control + Shift + Enter確認激活陣列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.