如何在 Excel 中返回文本而不仅仅是带有数组的数字

问题描述 投票:0回答:3

昨天,我很幸运地收到了有关问题的帮助(当列包含零长度字符串时如何使用 IF/IFS/ISBLANK),得到了以下答案:

=BYROW(CA6:CC13; LAMBDA(a; INDEX(a; XMATCH(TRUE; ISNUMBER(1/a); 0; -1))))

=BYROW(CA6:CC13; LAMBDA(a; XLOOKUP(TRUE; ISNUMBER(1/a); a; ; 0; -1)))

=IF(1-ISERR(1/CC6:CC13); CC6:CC13; IF(1-ISERR(1/CB6:CB13); CB6:CB13; CA6:CA13))

所有功能都完美适合该任务。但是,我现在需要帮助修改这些(或仅其中之一),因此该函数不仅会返回数字,还会返回文本。

为了检查工作簿的质量,我不允许使用VBA。

这是 CD 列中函数的结果应如下所示:

Mayukh Bhattacharya 提供的功能几乎可以工作。但此函数仅返回最后一列 (CA) 中的文本。

我尝试将函数重写为以下内容:

=IF(ISNUMBER(1/BK6:BK12), BK6:BK12, IF(ISNUMBER(1/BJ6:BJ12), BJ6:BJ12, BI6:BI12))

也尝试过这个:

=IF(OR(ISNUMBER(1/CC6:CC13), ISTEXT(CC6:CC13)), IFERROR(CC6:CC13, ""), IF(OR(ISNUMBER(1/CB6:CB13), ISTEXT(CB6:CB13)), IFERROR(CB6:CB13, ""), CA6:CA13))

excel if-statement text excel-formula
3个回答
1
投票

您似乎只想返回每行的最后一个非空单元格。尝试-

=BYROW(A2:E9,LAMBDA(rw,TAKE(FILTER(rw,rw<>""),,-1)))


1
投票

这对我有用:


=LET(_Fx, LAMBDA(α, (1-ISERR(1/α))+(ISTEXT(α))),
           IF(_Fx(CC6:CC13),CC6:CC13,IF(_Fx(CB6:CB13),CB6:CB13,IF(_Fx(CA6:CA13),CA6:CA13))))


0
投票

这个为我做到了,结合了两篇文章:

=IF(AND(LEN(CC6:CC20)>0;CC6:CC20>0);CC6:CC20;IF(AND(LEN(CB6:CB20)>0;CB6:CB20>0);CB6:CB20;CA6:CA20))

© www.soinside.com 2019 - 2024. All rights reserved.