我正在考虑一种查看ID组并根据两个标准提取不同日期的方法。
ID Date1 Date2 Product
101 1/1/2016 5/30/2016 Bond
101 1/1/2016 5/30/2016 Swap
101 1/1/2016 5/30/2016 Swap
201 2/28/2016 7/1/2016 Swap
201 2/28/2016 7/1/2016 Swap
201 2/28/2016 7/1/2016 Swap
如果ColumnD是Bond,则获取相应的Date1,如果是Swap,则获取相应的Date2。问题是,我必须寻找ID的更改,因为这是一个池,我想根据每个池进行一些查找或索引/匹配。每当ID发生变化时,我都需要检查Bond或Swap,并选择合适的日期。
Bond是主要的,所以如果池中存在Bond,请使用Date1,如果池没有Bond,请使用Date2。
有人可以在这里给我一个建议吗?
答案 0 :(得分:1)
@ dev1998的答案似乎在正确的轨道上,但它并不能确保“邦德”是主要的。因此,如果您有在Bond之前列出Swap的情况,则会失败。我不确定这是否会在您的特定数据集中发生。
所以,让我以一些假设开始我的答案:
考虑到这些假设,我实际上会使用三列公式,所以你最终会得到这样的结果:
以下是公式:
=IF(A2<>A1,D2,IF(E1="Bond","Bond",D2))
(对于给定的池,这可确保Bond优先于Swap)=IF(A2<>A1,IF(D2="Bond",B2,C2),IF(D2="Bond",IF(E1="Bond",MAX(B2,F1),B2),IF(E1="Bond",F1,MAX(C2,F1))))
(对于给定的池,这将确定所有Bond条目中的最大日期(如果存在),否则,它将占用所有Swap条目中的最大日期)=A2<>A3
(只是确定给定的项目是否是池中的最后一项 - 这是用于过滤目的)要执行分析,您应该复制公式,然后在IsLastItemInPool = TRUE
上过滤表格。
答案 1 :(得分:0)
我假设“ID”在单元格A1中。如果是,那么把它放在单元格E3中:
=IF(A3<>A2,IF(D3="Bond",B3,C3),"Same ID")
将公式从E3一直复制到数据末尾。
公式将检查ID是否与其上方行中的ID不同。然后它会看你是否有债券或掉期。