No puedo acceder a la página
TuTodoExpertos
Es tuya y no tengo permiso.
Si acaso yo podría acceder a las preguntas del tablón, creo que te refieres a esta:
Tablón
Pero dices que las operaciones no son esas, que le diste unas operaciones más sencillas.
Voy a intentar entresacar la lógica de esta línea que dices:
ActiveCell. FormulaR1C1
= _ "=IF(AND(RC[2]>0,RC[2]<=50,RC[14]>0,RC[14]<=2),(RC[2]*RC[14]*4)+11,IF(AND(RC[2]>0,RC[2]<=50,RC[14]>2,RC[14]<=4),(RC[2]*RC[14]*4)+22,IF(AND(RC[2]>0,RC[2]<=50,RC[14]>4),(RC[2]*RC[14]*4)+55,IF(AND(RC[2]>50,RC[2]<=100,RC[14]>0,RC[14]<=2),(RC[2]*RC[14]*12)+11,IF(AND(RC[2]>50,RC[2]<=100,RC[14]>2,RC[14]<=4),(RC[2]*RC[14]*12)+22,IF(AND(RC[2]>50,RC[2]<=100,RC[14]>4),(RC[2]*RC[14]*12)+55,IF(AND(RC[2]>100,RC[14]>0,RC[14]<=2),(RC[2]*RC[14]*36)+11,IF(AND(RC[2]>100,RC[14]>2,RC[14]<=4),(RC[2]*RC[14]*36)+22,IF(AND(RC[2]>100,RC[14]>4),(RC[2]*RC[14]*36)+55)))))))))"
Como te decía, las fórmulas de Excel pueden ser lo más incomprensible que existe, vamos a hacer una tabla
X (0,50] (50,100] (100,oo)
Y
(0,2] 4xy+11 12xy+11 36xy+11
(2,4] 4xy+22 12xy+22 36xy+22
(4,oo] 4xy+55 12xy+55 36xy+55
Asi puesto se entiende mucho mejor, según el grupo en X el coeficiente de xy es 4,12 o 36
y según el grupo en Y en sumando es 11, 22 o 55
Podemos crear una función de macro muy sencillamente, en el editor de VisualBasic creamos un módulo nuevo y añadimos esta función de usuario.
Function PrecioFinal(celda As Range) As Double
Dim X, Y As Double
X = Cells(celda.Row, "G")
Y = Cells(celda.Row, "S")
If X <= 50 Then
PrecioFinal = 4 * X * Y
ElseIf X <= 100 Then
PrecioFinal = 12 * X * Y
Else
PrecioFinal = 36 * X * Y
End If
If Y <= 2 Then
PrecioFinal = PrecioFinal + 11
ElseIf Y <= 4 Then
PrecioFinal = PrecioFinal + 22
Else
PrecioFinal = PrecioFinal + 55
End If
End Function
Entonces ahora en la celda E2 ponemos esta función
= PrecioFinal(E2)
Y después copiamos la celda E2 y la copiamos en las celdas restantes de la columna.
De esta forma en E3 pondrá
= PrecioFinal(E3)
en E4
= PrecioFinal(E4)
Etc.
En realidad podríamos haber puesto en E2 =PrecioFinal(A2) porque lo único que se tiene en cuenta en la fórmula es el 2 de la fila. Pero no te lies, hazlo como dije lo primero.
Ahora mismo te mando el fichero con la fórmula macro ya creada y asignada a las celdas de la fila E.
Y si cambias las condiciones tendrás que modificar la función PrecioFinal pero ya ves el mecanismo que hay para hacerlo mucho más sencillo y comprensible que con las funciones propias de Excel, mediante las funciones de usuario.
Espero que te sirva y lo hayas entendido. Si no es así pregúntame. Y si ya esta bien, no olvides puntuar.