Excel工作日计算

我在工作日计算中使用以下公式,其中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有假date。

在我的活动工作表(“所有数据”),我有包括国家代码(列L)订单货物的行。

我想要做的是在计算工作日时,我想排除与国家代码相关的假期。

实际上,我需要使用表格“所有数据”列L上的国家/地区代码在列表“银行假日”列A中的相同国家代码上列出的假期进行查找。

但是,vlookup只返回find的第一个值。 是否有一种types的vlookup将返回所有date对相关的国家代码(范围:列B:Z)。

我相信索引匹配会起作用,但是我对此并不熟悉,而且我无法得到这个工作。

我其实OFFSETMATCH会更容易为这种特殊情况下(但也许这只是如何看待 Excel中的东西):

=OFFSET('Bank Holidays'!A1,MATCH(L2,'Bank Holidays'!A:A,0)-1,1,1,24)

将在“ Bank Holidays表格中为您指定L2中的国家代码的具体节假日。

所以整个公式变成:

 =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列宽参数假定任何给定国家的假期date都不超过Z列。