我正在使用以下公式进行工作日计算,其中GB银行假日列在工作日“银行假期”单元格范围B13:Z13中。
=IF(F2<E2,IF(L2="GB",WORKDAY(E2,2,'Bank Holidays'!B13:Z13)),IF(L2="GB",WORKDAY(F2,2,'Bank Holidays'!B13:Z13)))
在“银行假期”表格中,我列出了31个国家/地区的银行假日行,列A列出了国家/地区代码,列B到Z表示假日日期。
在我的有效工作表('所有数据')中,我有一系列订单发货,包括国家/地区代码(L列)。
我想要做的是在计算工作日时我想排除与国家/地区代码相关的假期。
实际上,我需要使用“所有数据”列L上的国家/地区代码执行vlookup,以查看在“银行假期”列A上针对相同国家/地区代码列出的假日天数。
但是vlookup只返回找到的第一个值。是否有一种类型的vlookup会根据相关的国家/地区代码返回所有日期(范围:B列:Z列)。
我相信索引匹配会起作用,但是我对此并不熟悉,我无法让它发挥作用。
答案 0 :(得分:2)
我实际上OFFSET
和MATCH
对于这个特定情况会更容易(但也许它只是我认为关于Excel中的事情):
=OFFSET('Bank Holidays'!A1,MATCH(L2,'Bank Holidays'!A:A,0)-1,1,1,24)
将在L2
表格的Bank Holidays
中为您提供国家/地区代码的具体假期。
所以整个公式变成:
=IF(F2<E2,WORKDAY(E2,2,OFFSET('Bank Holidays'!A1,MATCH(L2,'Bank Holidays'!A:A,0)-1,1,1,24)),WORKDAY(F2,2,OFFSET('Bank Holidays'!A1,MATCH(L2,'Bank Holidays'!A:A,0)-1,1,1,24)))
24
列宽度参数假定任何给定国家/地区的假日日期都不超过Z列。