问题描述
员工编号 | 雇主 | Date_of_joining |
---|---|---|
123 | adobe | 22/03/2004 |
123 | 亚马逊 | 14/07/2010 |
123 | adobe | 04/04/2013 |
126 | 爱立信 | 09/06/2004 |
126 | 谷歌 | 30/06/2010 |
126 | 亚马逊 | 30/08/2019 |
基于上表,我试图编写一个excel公式来填充下表中的值: 在第 1 行显示了员工 123 的一个示例
员工编号 | 01/07/2010 | 01/07/2011 | 01/07/2012 | 01/07/2013 | 01/07/2014 | 01/07/2015 |
---|---|---|---|---|---|---|
123 | adobe | 亚马逊 | 亚马逊 | adobe | adobe | adobe |
126 | - | - | - | - | - | - |
我关注的应用程序如下:
如果从excel的角度来看,excel会先检查员工,然后检查生效日期是否小于加入日期,然后选择相应的雇主。
使用公式:
=IF(AND(MATCH($C14,$A$2:$A$7,0)>0,D$13
但我知道我没有使用正确的逻辑,谦虚地请求帮助我!!
解决方法
当您使用 Excel2010 时,您需要一些数组公式。试试下面-
// the function
filterItems = (data,filters) => data.filter(item => !filters.find(x => x.key.split('.').reduce((keys,key) => keys[key],item) !== x.value))
// how to use it
filterItems(data,[{ key: 'type',value: 'wood' },{ key: 'some.nested.prop',value: 'value' }])
按 CTRL+SHIFT+ENTER 计算公式,因为它是一个数组公式。