我正在尝试想一种方法来查看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是焊接,则获取相应的Date1,如果是交换,则获取相应的Date2。问题是,我必须查找ID中的更改,因为这是一个池,我希望根据每个池执行一些查找或索引/匹配。每当ID更改时,我需要检查Bond或Swap,并选择适当的日期。
焊接在这里是主要的,因此如果池存在焊接,请使用Date1,如果没有池的焊接,则使用Date2。
有人能在这里给我一个建议吗?
发布于 2016-01-27 08:28:25
@dev1998的答案似乎是正确的,但它并不能确保"Bond“是首要的。所以,如果有这样的情况,Swap列在Bond之前,它就会失败。不过,我不确定在您的特定数据集中是否会发生这种情况。
所以,让我从一些假设开始我的答案:
H19日期2在池中可能不同。如果池中有多个焊接,则使用最新(最大)日期1。H212H113如果池中有多个交换,则使用最新(最大)日期2。<代码>H214<代码>F215
考虑到这些假设,我实际上会使用三列公式,所以你最终会得到这样的结果:
以下是公式:
=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))))
(对于给定池,如果存在,它将确定所有债券条目中的最大日期,否则,它将采用所有交换项目=A2<>A3
中的最大日期(仅确定给定项目是否为池中的最后一个项目--这是用于过滤目的)要执行分析,您应该将公式复制下来,然后在IsLastItemInPool = TRUE
上筛选该表。
发布于 2016-01-26 23:16:11
我假设"ID“在A1牢房里。如果是,则将其放入单元格E3中:
=IF(A3<>A2,IF(D3="Bond",B3,C3),"Same ID")
将公式从E3一直复制到数据的末尾。
该公式将检查ID是否与其上一行中的ID不同。然后,它将查看您是否有债券或掉期。
https://stackoverflow.com/questions/35005864
复制相似问题