首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到指定范围内的第一个带编号的单元格,然后在Google Sheets中将ArrayFormula应用于该公式

找到指定范围内的第一个带编号的单元格,然后在Google Sheets中将ArrayFormula应用于该公式
EN

Stack Overflow用户
提问于 2017-11-18 06:27:53
回答 1查看 57关注 0票数 1

使用Google Sheets,我目前正在使用这个公式来查找指定区域中满足ISNUMBER()条件的第一个单元格:

代码语言:javascript
复制
=INDEX(FILTER(AC!D9:K9,ISNUMBER(AC!D9:K9)), 1)

这工作得很好。但是,我需要将其应用于整个列,因此另一种方法是向下拖动它,以便后续单元格包含类似的公式,例如,此单元格下面的单元格将包含:

代码语言:javascript
复制
=INDEX(FILTER(AC!D10:K10,ISNUMBER(AC!D10:K10)), 1)

这也行得通。但我希望找到一种方法使其更简洁,并使用ArrayFormula将其应用于整个列,以及默认的Ctrl + Shfit + Enter公式:

代码语言:javascript
复制
=ArrayFormula(INDEX(FILTER(AC!D9:K9,ISNUMBER(AC!D9:K9)), 1))

不起作用了。有人知道我怎么才能让它工作吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-20 15:30:17

index不适用于ArrayFormula

请尝试:

=ArrayFormula(IFERROR(REGEXEXTRACT( TRANSPOSE(QUERY(TRANSPOSE(IFERROR( 1 * D9:K12)),,2^99)), "\d+"),"no number here"))

它是如何工作的

IFERROR( 1 * D9:K12)

将仅返回范围D9:K12中的数字。

=TRANSPOSE(QUERY(TRANSPOSE(IFERROR( 1 *D9:K12)),,2^99))

给出一个由空格分隔的数字数组。如果行没有数字,它将返回空格。

REGEXEXTRACT( expression , "\d+")

将从字符串中查找第一个数字。

编辑

要将数字转换为数字格式:

=ArrayFormula(IFERROR(REGEXEXTRACT( TRANSPOSE(QUERY(TRANSPOSE(IFERROR(1*D9:K12)),,2^99)), "\d+") * 1,"no number here"))

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

https://stackoverflow.com/questions/47360208

复制
相关文章

相似问题

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