首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据结果增加年数的公式

根据结果增加年数的公式
EN

Stack Overflow用户
提问于 2015-04-22 21:52:40
回答 3查看 30关注 0票数 0

我正在尝试构建一个Excel电子表格,它可以将y/n答案转换为一个数字,然后该数字可以反映在日期上。

我有四栏-

  • 日期
  • 辐射,辐射
  • 弹片
  • 文件保存到日期

date列显示测试的日期。第二列需要反映它们是否需要辐射测试(y/n答案)。第三列需要反映它们是否需要弹片测试(y/n答案),最后一列显示由前面的答案决定的文件保存日期。

假设日期是2010年01月1日

  • 如果辐射标记为"Y",则需要在上述日期再加上50年。
  • 如果弹片标记为"Y",则需要在上述日期加上20年。
  • 如果两者都标有"Y“号,则以辐射为主,并将日期延长50年(而不是50+20)。
  • 如果两者都没有勾上"N",那么你只能加10年。

希望我解释得对。任何帮助都会很好。

干杯。

EN

回答 3

Stack Overflow用户

发布于 2015-04-22 23:09:29

试一试

=EDATE(A2,IF(B2="y",50,IF(C2="y",20,10))*12)

票数 1
EN

Stack Overflow用户

发布于 2015-04-22 22:32:35

假设日期为A列,格式为日期01/01/2010,则B中的标准辐射和C中的碎片,答案(这个公式)放置在D(但可能在任何地方)单元格中,因为结果需要格式化为没有十进制位的数字。

如有任何问题请告诉我,希望能有所帮助:)

代码语言:javascript
运行
复制
=IF(AND(B2="Y",C2="Y"),YEAR(A2)+50,IF(AND(B2="Y",C2="N"),YEAR(A2)+50,IF(AND(B2="N",C2="Y"),YEAR(A2)+20,YEAR(A2)+10)))
票数 0
EN

Stack Overflow用户

发布于 2015-04-22 23:34:25

我更喜欢在Excel中尽可能简单地使用IF函数。它们可能会变得非常复杂,所以在这种情况下,我认为使用MAXIF的组合是一种更干净的方法。

代码语言:javascript
运行
复制
=EDATE([@Date],MAX(IF([@Radiation]="Y",50,10),IF([@Shrapnel]="Y",20,10))*12)

这就产生了以下结果:

代码语言:javascript
运行
复制
+---+------------+-----------+----------+---------------------+
|   |     A      |     B     |    C     |          D          |
+---+------------+-----------+----------+---------------------+
| 1 | Date       | Radiation | Shrapnel | File saved til date |
| 2 | 2010-01-01 | N         | N        | 2020-01-01          |
| 3 | 2010-01-01 | Y         | N        | 2060-01-01          |
| 4 | 2010-01-01 | N         | Y        | 2030-01-01          |
| 5 | 2010-01-01 | Y         | Y        | 2060-01-01          |
+---+------------+-----------+----------+---------------------+

注:我使用了ISO的日期格式作为消除歧义的问题,但是对于给出的数据和在这个问题中产生的结果来说并不重要。

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

https://stackoverflow.com/questions/29809573

复制
相关文章

相似问题

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