Auditoría del comportamiento: la fórmula actual repite dos veces exactamente la misma búsqueda, pero no cumple la regla indicada para identificadores desconocidos. XLOOKUP devuelve 0 cuando no encuentra ninguna clave, y la comparación exterior lo trata entonces como un precio cero legítimo. Una fórmula LET que preservara el comportamiento mantendría este defecto, por lo que la corrección debe indicarse por separado.
Fórmula LET corregida para H2: =IF(B2="","",LET(productId,B2,quantity,E2,unitPrice,XLOOKUP(productId,Products!$A$2:$A$2000,Products!$D$2:$D$2000,NA(),0),IFERROR(IF(unitPrice>0,ROUND(quantity*unitPrice,2),0),"Review"))). productId y quantity documentan las entradas relativas de la fila; unitPrice realiza una búsqueda exacta contra los rangos de origen fijos. NA() garantiza que una clave desconocida llegue a IFERROR, mientras que un cero numérico real sigue devolviendo 0. El cambio de comportamiento intencionado corresponde al identificador desconocido: 0 → Review. Se preservan el comportamiento ante celdas vacías, ceros reales, redondeo y errores de entrada.
Compatibilidad: válida para los entornos Microsoft 365 indicados; conserva la forma corregida sin LET solo si una persona destinataria futura carece de LET. El rendimiento puede mejorar porque una búsqueda sustituye a dos por cada fila no vacía, pero no se puede afirmar ningún porcentaje de tiempo de ejecución sin medir el libro.
Pruebas de equivalencia y corrección: P-10 ×3 → 37.50 tanto en la versión antigua corregida como en la versión LET; P-FREE ×2 → 0; P-99 → Review (corrección deliberada); identificador vacío → celda vacía sin búsqueda; cantidad «three» con un precio positivo válido → Review; al copiar en H3, productId y quantity cambian a B3/E3 mientras los rangos de Products permanecen fijos. Verifica también por separado los identificadores de producto duplicados antes de confiar en una búsqueda de resultado único.