在 MS Excel 中搜索整个列并在单独的单元格中返回 "Yes" 或 "No"
Searching an entire column within MS Excel and returning a "Yes" or "No" in a separate cell
倾盆大雨!),
我正在尝试在 MS Excel 2013 中编写一个语句来执行以下操作:
如果 Y 列中的任何单元格(单元格 Y1 除外 - 因为它是标题)包含日期,则在单元格 Z2 中输出 "Yes"。
否则在单元格 Z2
中输出 "No"
我坚信您正在寻找这个:
=ISNUMBER(IF(ISNUMBER(I2);I2;DATEVALUE(I2)))
它 returns TRUE
如果它是 日期 数字或存储为文本的日期。我确定您可以像这样查找 {=SUM(IF())}
trick 来查找您的 "any cell":
{=IF(SUM(IF(ISNUMBER(IF(ISNUMBER($Y:$Y48576),$Y:$Y48576,DATEVALUE($Y:$Y48576))),1,0))<>0,"Yes","No")}
或者您可能只想检查文本,在这种情况下您想要检查其他内容。请继续关注,我正在尝试创建一个肮脏的公式。
免责声明:分隔符是 ;
s.
编辑: 回来再加热。
由于您似乎很挑剔,并且正在寻找 "yy/mm/dd" 格式,所以我将其分成几部分。
年份:=MID(I2;1;2)
月份:=MID(I2;4;2)
日:=MID(I2;7;2)
您可以从此重新创建日期:=DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2))
不幸的是,它接受说“14/12/32”并输出#[19]15/01/01#。您必须检查每个日期部分(或至少两个)是否符合您的预期。
年份:=RIGHT(YEAR(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)));2)=MID(I2;1;2)
月份:=MONTH(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;4;2)
日:=DAY(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;7;2)
完整的逻辑输出将如下所示(您可以去掉一个参数):
=AND(RIGHT(YEAR(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)));2)=MID(I2;1;2);MONTH(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;4;2);DAY(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;7;2))
与公司交谈后,我的问题似乎不再需要了。而不是在单元格 Z2 中输入 "yes",他们现在可以使用 Y 列中提到的最早日期。为了实现这一点,我将以下内容放入单元格 Z2
=MIN($Y:$Y)
不优雅,但现在满足了他们的要求(假设他们不再改变主意)。
感谢那些回复的人,特别是@user3819867
倾盆大雨!),
我正在尝试在 MS Excel 2013 中编写一个语句来执行以下操作:
如果 Y 列中的任何单元格(单元格 Y1 除外 - 因为它是标题)包含日期,则在单元格 Z2 中输出 "Yes"。
否则在单元格 Z2
中输出 "No"我坚信您正在寻找这个:
=ISNUMBER(IF(ISNUMBER(I2);I2;DATEVALUE(I2)))
它 returns TRUE
如果它是 日期 数字或存储为文本的日期。我确定您可以像这样查找 {=SUM(IF())}
trick 来查找您的 "any cell":
{=IF(SUM(IF(ISNUMBER(IF(ISNUMBER($Y:$Y48576),$Y:$Y48576,DATEVALUE($Y:$Y48576))),1,0))<>0,"Yes","No")}
或者您可能只想检查文本,在这种情况下您想要检查其他内容。请继续关注,我正在尝试创建一个肮脏的公式。
免责声明:分隔符是 ;
s.
编辑: 回来再加热。
由于您似乎很挑剔,并且正在寻找 "yy/mm/dd" 格式,所以我将其分成几部分。
年份:=MID(I2;1;2)
月份:=MID(I2;4;2)
日:=MID(I2;7;2)
您可以从此重新创建日期:=DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2))
不幸的是,它接受说“14/12/32”并输出#[19]15/01/01#。您必须检查每个日期部分(或至少两个)是否符合您的预期。
年份:=RIGHT(YEAR(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)));2)=MID(I2;1;2)
月份:=MONTH(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;4;2)
日:=DAY(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;7;2)
完整的逻辑输出将如下所示(您可以去掉一个参数):
=AND(RIGHT(YEAR(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)));2)=MID(I2;1;2);MONTH(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;4;2);DAY(DATE(MID(I2;1;2);MID(I2;4;2);MID(I2;7;2)))&""=MID(I2;7;2))
与公司交谈后,我的问题似乎不再需要了。而不是在单元格 Z2 中输入 "yes",他们现在可以使用 Y 列中提到的最早日期。为了实现这一点,我将以下内容放入单元格 Z2
=MIN($Y:$Y)
不优雅,但现在满足了他们的要求(假设他们不再改变主意)。
感谢那些回复的人,特别是@user3819867