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)。
我相信索引匹配会起作用,但是我对此并不熟悉,而且我无法得到这个工作。
我其实OFFSET
和MATCH
会更容易为这种特殊情况下(但也许这只是我如何看待 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列。