Calculadora con excel

Me gustaría "programar una calculadora con excel para que me diese un valor en función de unos parámetros. He hecho una tabla en la que tengo tipos de hormigón en las filas de la siguiente manera:

B 30 M 60 D 16 R 0 -> 200

B 30 M 60 D 16 R 25 -> 300

B 30 M 60 D 16 R 50 -> 420

B 35 M 45 D 16 R 0 -> 320

...

<h2>He puesto cada uno de los valores y "letras" en una columna: B | 30 | M | 60 | D | 16 | ...</h2>

por otra parte tengo la cantidad de acelerador del fraguado necesaria en relación al cemento.

El valor numérico de la derecha del todo es la cantidad de cemento de la mezcla en otra. Me gustaría hacer otra tabla en la que apareciese B "espacio" M "espacio" D "espacio" R "espacio".

Y que metiendo en los espacios los valores correspondientes a un tipo de hormigón, me de la cantidad de acelerador necesaria para ese tipo de hormigón (por cada metro cubico). Así posteriormente meto los metros cúbicos de hormigón y me da la cantidad de acelerador necesaria.

1 respuesta

Respuesta
1

Es difícil de entender . El último valor surgiría de una operación matemática de los anteriores o habría que buscarlo en la tabla. Si es así la tabla tendría todas las combinaciones posibles o serían necesarias operaciones extra.

Si acaso mándame el fichero y así me entero mejor, pero dame todas las explicaciones necesarias.

Mi correo es

[email protected]

Para llevar order pon el titulo de la pregunta como asunto y como nombre del fichero pon

CalculadoraExcel.XLSX (o XLS o XLSM) la extensión quien tenga de por sí

Lo intentaré aunque esté en noruego, pero es que no me ha llegado el fichero.

Si te da problema de formula muy larga podemos intentarlo hacer con una macro. Las fórmulas de Excel son mucho más complicadas de entender y no llegan a ser tan potentes como las macros que además se comprenden bien.

Prueba a mandarme el fichero si es que lo olvidaste u otra vez para ver si me llegua definitivamente.

He hecho la parte de la búsqueda de la cantidad de cemento y creo que el cálculo de la casilla I9. Pero para la casilla I10 la que llamas Belop no sé cuál es el cálculo que hay que hacer. Dímelo para poder hacerlo. De todas formas te mando lo hecho hasta el momento para que me digas si está bien.

Muchísimas gracias

La verdad es que no me he enterado demasiado. Voy a profundizar sobre ello.

Me parece muy interesante aunque no está en mi campo de conocimiento.

Un saludo

Me alegro que ya tengas lo que necesitas.

El problema lo he resuelto con macros. Había una forma de hacerlo sin ellas usando la función

SUMAR.SI.CONJUNTO(rango_suma; rango_criterios1; criterios1; [rango_criterios2; criterios2]; ...)

Pero daba error por haber celdas vacías y no he podido dar si la hay con la expresión de criterios que solventara ese problema.

Las macros son programas que se hacen con un lenguaje de programación llamado Visual Basic que igual te podría servir para esto que para cualquier tipo de programa de imagines. Por eso son muy potentes y para quien está acostumbrado a programar son más sencillas que las funciones Excel equivalentes, donde se pueden formar líneas llenas de datos, paréntesis, puntos y coma que solo las puede llegar a entender el que las ha escrito.

El explicar aquí todo el mundo de las macros es imposible, pero tienes muchos artículos en internet sobre ello. Si ya las conoces te pongo la macro que se ha utilizado.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, FilaUltima As Integer
Dim Encontrado As Boolean
Dim Sement As Double
If (Not Intersect(Target, Range("I5:Q5")) Is Nothing) Or _
   (Not Intersect(Target, Range("I7:I8")) Is Nothing) Then
  FilaUltima = Range("A7").End(xlDown).Row
  Encontrado = False
  For i = 5 To FilaUltima
    If (Cells(i, 1) = [i5]) And (Cells(i, 2) = [k5]) And (Cells(i, 3) = [M5]) And (Cells(i, 4) = [O5]) And (Cells(i, 5) = [Q5]) Then
      Encontrado = True
      Exit For
    End If
  Next
  If Encontrado Then
    Sement = Cells(i, 6)
    [i9] = [i7] * Sement
  End If
End If
End Sub

Que está en la Hoja "Ark2" y puedes ver y modificar mediante la pestaña Programador y luego Visual Basic.

Esta macro lo que hace es ejecutarse cuando se cambia el valor de alguna celda. Lo primero que hace es preguntar si la celda modificada es una de las que se introducen los datos que necesita la calculadora, si lo es busca en la tabla la línea que corresponde a esos datos y nos devuelve el valor de la columna F de esa línea en la variable Sement. Luego se hace el cálculo de multiplicarlo por I7 y se coloca en I9.

Ojala lo hayas entendido si conoces las macros, y si no te sirva como iniciación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas