首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据产品查找行变更和查找日期?

如何根据产品查找行变更和查找日期?
EN

Stack Overflow用户
提问于 2016-01-26 09:59:52
回答 2查看 47关注 0票数 0

我正在尝试想一种方法来查看ID组,并根据两个标准提取不同的日期。

代码语言:javascript
运行
复制
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。

有人能在这里给我一个建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-01-27 08:28:25

@dev1998的答案似乎是正确的,但它并不能确保"Bond“是首要的。所以,如果有这样的情况,Swap列在Bond之前,它就会失败。不过,我不确定在您的特定数据集中是否会发生这种情况。

所以,让我从一些假设开始我的答案:

  • 池是指具有相同ID的所有项目。
  • 表按ID排序。
  • 在池中,交换可能出现在焊接之前。
  • Date1在池中可能不同。

H19日期2在池中可能不同。如果池中有多个焊接,则使用最新(最大)日期1。H212H113如果池中有多个交换,则使用最新(最大)日期2。<代码>H214<代码>F215

考虑到这些假设,我实际上会使用三列公式,所以你最终会得到这样的结果:

以下是公式:

  • PrimaryProduct: date (对于给定池,这将确保Swap)
  • Primary date优先于Swap Date:=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上筛选该表。

票数 1
EN

Stack Overflow用户

发布于 2016-01-26 23:16:11

我假设"ID“在A1牢房里。如果是,则将其放入单元格E3中:

代码语言:javascript
运行
复制
=IF(A3<>A2,IF(D3="Bond",B3,C3),"Same ID")

将公式从E3一直复制到数据的末尾。

该公式将检查ID是否与其上一行中的ID不同。然后,它将查看您是否有债券或掉期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35005864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档