Extraiga dígitos antes de usar AVERAGEIFS
Tengo la siguiente tabla con celdas que contienen números del -1 al 10 (se permiten decimales). En algunos casos hay una A detrás del número.
Ahora, me gustaría extraer todos los dígitos de las celdas y calcular el promedio por fila usando una fórmula, pero solo considero los elementos que cumplen ciertas condiciones:
a) El encabezado no contiene "no" y
b) el valor es >= 1; de lo contrario, el valor no debería contarse para el promedio.
El resultado esperado se enumera en la average
columna.
promedio | Sí | No | Sí | Sí | No | Sí |
---|---|---|---|---|---|---|
2,75 | 2 | 2A | 3,5 A | -1 | 0 | |
2 | 0 | 4A | 3A _ | 1 |
Probé esta fórmula pero Excel me dice que hay un problema y la cancela.
=AVERAGEIFS(VALUE(SUBSTITUTE(B2:G2, "A", "")), B1:G1, "<>*no*", B2:G2, ">=1", B2:G2, "<>")
¡Cualquier ayuda es apreciada!
Aceptado
Puedes utilizar esta fórmula:
=LET(d,B2:G2,
f,$B$1:$G$1,
d_,NUMBERVALUE(SUBSTITUTE(d,"A","")),
AVERAGE(FILTER(d_,(f="yes")*(d_>=1))))
o como por versión de fila:
=LET(data,B1:G3,
f,TAKE(data,1),
d_,NUMBERVALUE(SUBSTITUTE(DROP(data,1),"A","")),
BYROW(d_,LAMBDA(r,AVERAGE(FILTER(r,(f="yes")*(r>=1))))))