【问题标题】:How to properly format this Nested IF function in Excel?如何在 Excel 中正确格式化此嵌套 IF 函数?
【发布时间】:2018-04-11 19:10:03
【问题描述】:

如果单元格 B2 有任何格式为 mm/dd/yyyy 的日期,我正在尝试使函数的输出为 0 或 1。

例如,

我有两列。第一列称为“OUT”,第二列称为“AMOUNT OUT”。 所以我想弄清楚的是:如果有任何单元格,我可以将什么函数用于读取“OUT”的列 在那一列里面写了一个日期——如果他们有一个日期——我需要这个函数来输出一个1 在“金额”中。如果没有日期,“AMOUNT OUT”应该是0

我尝试在“AMOUNT OUT”中编写这个公式
=CONCATENATE(IF(B2="DATEVALUE()" , "1" , "0", ) B2 CELL 是“OUT”单元格。
DATEVALUE 不起作用,因为它要求提供特定日期,我需要它是 mm/dd/yyyy 格式下的任何日期。

我没有使用正确的功能吗?

【问题讨论】:

  • 内置函数可能会很棘手。我可以想到一种适用于许多日期的方法,但是当您说01/10/2017 时它会中断(可能是 1 月 10 日或 10 月 1 日)。 VBA 是一种选择吗?编辑:嗯,也有 VBA,这可能很棘手。同样,你怎么知道01/10/201704/06/2017mm/dd/yyyydd/mm/yyyy...
  • 感谢您的回复,VBA 与否,我不介意。如果有任何事情发生,请告诉我。

标签: excel function date


【解决方案1】:

你可以试试这个:

If(ISERR(DATEVALUE(TEXT(B2,"mm/dd/yyyy")));"1";"0")

解释:

  • Text(B2, "mm/dd/yyyy") - 仅当您的值实际上是日期时才需要将它们转换为字符串(使用您的首选格式)
  • Datevalue(...) - 将文本转换为日期
  • Iserr(...) - 检查里面的值是否错误(如果文本是无效的日期,那就是错误)。

【讨论】:

  • 谢谢你的清晰解释,虽然,当我输入这个函数时,它给了我“这个公式有问题”。错误。我只是复制和粘贴它,这会破坏它吗?
  • Excel 如何知道某些日期的日期是否输入为dd/mm/yyyy,即10/03/2017?那可能是 10 月 3 日或 3 月 10 日。
  • 可能是我输入的逗号而不是分号?此消息通常是一个错字、缺少括号之类的东西。
  • 您的机器上通常配置了一个固定的日期模式。如果您使用的是美国的英语 excel,它很可能是 mm/dd/yyyy,如果您使用的是葡萄牙语的巴西 excel,您将有 dd/mm/yyyy。这不仅取决于 Excel 配置,还取决于您的 Windows 配置。
  • 这很完美!正是我想要的,我所要做的就是用逗号替换分号,它就起作用了!谢谢。
猜你喜欢
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 2013-09-08
相关资源
最近更新 更多