Excel 是否查找包含数字的行中的第一个单元格?

Excel 是否查找包含数字的行中的第一个单元格?,excel,excel-2007,worksheet-function,Excel,Excel 2007,Worksheet Function,我在Excel中使用的导出表如下: |-------------------------------------------------------------------------------| | | A | B | C | D | E | F | G | H | I | |---|-------------------|-----|-----|-----|-----|-----|-------|-----

我在Excel中使用的导出表如下:

|-------------------------------------------------------------------------------|
|   |        A          |  B  |  C  |  D  |  E  |  F  |   G   |  H  |     I     |
|---|-------------------|-----|-----|-----|-----|-----|-------|-----|-----------|
| 1 |      Domain       | JAN | FEB | MAR | APR | MAY | Start | End |   Change  |
|---|-------------------|-----|-----|-----|-----|-----|-------|-----|-----------|
| 2 | www.mydomain1.com |     |   1 |   4 |   3 |   1 |     1 |   1 |         0 |
|---|-------------------|-----|-----|-----|-----|-----|-------|-----|-----------|
| 3 | www.mydomain2.com |   2 |   4 |  12 |  18 |  23 |     2 |  23 |        21 |
|---|-------------------|-----|-----|-----|-----|-----|-------|-----|-----------|
| 4 | www.mydomain3.com |     |     |  14 |  12 |     |    14 | xxx | NOT FOUND |
|-------------------------------------------------------------------------------|
我试图将当前状态(最后一个单元格)与原始单元格(第一个单元格有值)进行比较

在第一列中,我有公式
=IF(G2=“xxx”,“未找到”,IF(H2=“xxx”,“未找到”,H2-G2))

在H列中,我有公式
=IF(F2=“”,“xxx”,F2)

在G列中,我需要找到第一个带有数字的单元格。如果没有一个在这个范围内,我需要G是“xxx”。我想我只需要检查范围(B2到F2)中包含值而不仅仅是数字的第一个单元格。我尝试使用索引和匹配组合,但我不能完全理解它。

下面的公式(在
$G$2中并填充)应该可以做到这一点:

=IF(ISBLANK(F2),"xxx",INDEX(B2:E2,,COUNTBLANK(B2:F2)+1))
请注意,只有在第一个条目和最后一个条目之间没有其他空白单元格时,此操作才有效

更新:这里有一个更通用的选项:

=索引(B2:F2,匹配(1,如果(B2:F20,如果(B2:F2“”,1)),0))
此公式必须作为“数组公式”输入,这意味着您必须在粘贴公式后按CTRL-SHIFT-ENTER键

评论回复:

它工作得很好,只是如果一行中的所有单元格都为空,它将返回#N/a。因此,我稍微修改了公式,以包含一个IsNA()条件:

=IF(索引(B2:F2,匹配(1,IF(B2:F20,IF(B2:F2“”,1)),0)),“xxx”,
索引(B2:F2,匹配(1,如果(B2:F20,如果(B2:F2“”,1)),0)))
您可以执行以下操作,而不是复制整个公式:

=IF(COUNTBLANK(B2:F2)=COLUMNS(B2:F2),"xxx",
    INDEX(B2:F2,MATCH(1,IF(B2:F2<>0,IF(B2:F2<>"",1)),0)))
=IF(COUNTBLANK(B2:F2)=列(B2:F2),“xxx”,
索引(B2:F2,匹配(1,如果(B2:F20,如果(B2:F2“”,1)),0)))

如果作为数组公式输入(ctrl-shift-enter),则以下内容有效

如果中间有空白单元格,也可以工作。

{=INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),99999,COLUMN(B2:F2))))}

编辑

这一个也控制了错误:

{=IF(ISERROR(INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),9999,COLUMN(B2:F2))))),"xxx",
  INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),9999,COLUMN(B2:F2)))))}

+1用于格式良好的表格!谢谢!:)花了我一段时间,hahaThat是我之前使用索引公式时遇到的问题。页面之间会有空白单元格,因为页面会不时从谷歌的索引中删除。有没有办法解决这个问题呢?一件简单的事情——它非常有效,除了如果一行中的所有单元格都是空的,它会返回#N/a。因此,我稍微修改了公式,加入了一个IsNA()条件:
=if(IsNA(INDEX(B2:F2,MATCH(1,if(B2:F20,if(B2:F2“”,1)),“xxx”,INDEX(B2:F2,MATCH(1,if(B2:F2),if(B2:F2“”,1)),0)))
@Dexter:我在上面发布了另一个可能的解决方案。如果没有别的,它更人性化一点啊,好吧,我明白了。那我就这样用吧。有道理。
{=INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),99999,COLUMN(B2:F2))))}
{=IF(ISERROR(INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),9999,COLUMN(B2:F2))))),"xxx",
  INDEX(B2:F2,1,MIN(IF(ISBLANK(B2:F2),9999,COLUMN(B2:F2)))))}