
我對 INDEX MATCH 感覺很舒服,但我遇到了一個問題,我想在我不太確定它是否有效的地方使用它。我有兩張紙:第一個較小的紙有另一張紙上的一小部分姓名,並且有一組與每個姓名關聯的日期。另一張較大的工作表具有與每個名稱關聯的一組不同的日期。我希望能夠做的是索引較大工作表上的日期,並且僅當該日期大於較小工作表上的日期且小於與該日期相關的月末時才匹配名稱。如果滿足條件,我不想返回 MATCH 值,而是返回 1。這是可以使用 INDEX MATCH 輕鬆完成的事情還是我應該尋找另一組函數?你會怎麼做呢?
答案1
我相信您的問題圍繞著圍繞這些標準編寫索引/匹配公式:
在較大的工作表上索引日期
僅當該日期大於較小工作表上的日期時才符合名稱
- 小於與該日期相關的月底
如果滿足條件則傳回 1。
我們可以透過將 INDEX/MATCH 嵌套在 IF 條件中來做到這一點:
=IF(
INDEX([LargerSheet!*Range with Dates*],
MATCH(
IF([SmallerSheet!*First Date in Range*]<[LargerSheet!*First Date in Range],
[SmallerSheet!*Range with Dates]),
[SmallerSheet!*Range with Dates*],0)
)>0,1,"")
每次找到匹配項時,MATCH 函數都會傳回值,並且根據定義,該值將大於 0。
希望這可以幫助!
答案2
我會為此使用 Power Query 插件。查詢可以從 Excel 表開始,然後逐步建立資料轉換。您可以查看每個步驟的結果。
根據您的要求,我將使用「合併」命令按名稱將兩個工作表連接在一起,並從較大的工作表中展開日期列。
http://office.microsoft.com/en-au/excel-help/merge-queries-HA104149757.aspx
這將導致所有可能的匹配。因此,我將使用“過濾器”命令來獲取範圍內的日期。您可能需要為此編輯過濾器函數。請注意,有一個 Power Query 函數可以得出月末:
最後,我將查詢傳遞到一個新的 Excel 表。