Вчера мне посчастливилось получить помощь по вопросу (Как работать с 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:
Функция, предоставленная Маюхом Бхаттачарьей, почти работает. Но эта функция возвращает текст только из последнего столбца (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))
Кажется, вы просто хотите вернуть последнюю непустую ячейку каждой строки. Пытаться-
=BYROW(A2:E9,LAMBDA(rw,TAKE(FILTER(rw,rw<>""),,-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))))
Обновленные версии вышеперечисленного:
=LET(
_Fx, LAMBDA(α, (1-ISERR(1/α))+(ISTEXT(α)*(α<>""))),
IFS(_Fx(CC6#), CC6#, _Fx(CB6#), CB6#, _Fx(CA6#), CA6#))
И этот может быть короче, я думаю:
=BYROW(CA6:CC21,LAMBDA(α,LOOKUP(2,1/((α<>"")*(α<>0)),α)))
Этот сделал это для меня, объединив оба сообщения:
==IF(ISTEXT(CC6:CC20);CC6:CC20;IF(BITAND(LEN(CC6:CC20)>0;CC6:CC20>0);CC6:CC20;IF(ISTEXT(CB6:CB20);CB6:CB20;IF(BITAND(LEN(CB6:CB20)>0;CB6:CB20>0);CB6:CB20;CA6:CA20))))
Но кажется немного перебором
=BYROW(CA6:CC13; LAMBDA(r; TAKE(FILTER(r; r <> 0); ; -1)))
или с запятыми
=BYROW(CA6:CC13, LAMBDA(r,TAKE(FILTER(r, r <> 0), , -1)))
Что именно означает
For the purpose of quality check of the workbook, I am not allowed to use VBA
? Должно быть возможно с помощью только формул. Столбец D — желаемый результат?