Como crear una fórmula (EXCEL) dependiendo de dos

Hola, más o menos, este es lo que he tratado de hacer, pero no he podido con el formato condicional:
Quisiera que (por ejemplo) C1 me aparezca la palabra "Good" si se cumple la condición de que A1 esta comprendido en el rango de 0 a 10000, pero a la misma vez que B1 cumpla con otro rango diferente(por ejemplo 0 a 499).. Y así que fuera lo mismo para que en C1 aparezca "Regular".. Para un rango de valores de C1 y C2... Y "Malo" para otro idistinto de C1 y C2 y así...
No se si fui lo suficiente claro :(... La idea es que quisiera automatizar una tabla a excel.. Como esta.
http://www.imagengratis.org/?v=ejemplomo6km.jpg
Espero me puedan ayudar.. Gracias de antemano

1 respuesta

Respuesta
1
La función tal cual la foto.
El Valor_1000 son los que van del 0 a >1.000
El Valor_10.000 son los que van de 0 a >50.000
Public Function camion(Valor_1000 As Double, Valor_10000 As Double) As String
    Select Case (Valor_10000)
        Case Is <= 10000
            If (Valor_1000 < 1000) Then
                camion = "Bueno"
            Else
                camion = "Excelente"
            End If
        Case 10001 To 20000
            Select Case (Valor_1000)
                Case Is < 500
                    camion = "Pobre"
                Case 500 To 1000
                    camion = "Regular"
                Case Is > 1000
                    camion = "Bueno"
            End Select
        Case 20000 To 50000
            If (Valor_1000 < 1000) Then
                camion = "Pobre"
            Else
                camion = "Regular"
            End If
        Case Is > 50000
            camion = "Pobre"
    End Select
End Function
Hola, muchas gracias por tu respueista.. pero.. honestamente no se nada de nada de VB :( :( ... a decir verdad estaba tratando con "IF" ... de acuerdo con la tabla mostrada en el link (http://www.imagengratis.org/?v=ejemplomo6km.jpg)... no puedo poner la segunda fila de valores
Por ejemplo.. esta fórmula me funciona, pero solo tiene los valores de la primera fila completa (0 a 499).. y de la segunda fila hasta (10001-20000)
=IF(AND(A2>=0;A2<=499;(AND(B2>0;B2<=10000)));"GOOD";IF(AND(A2>=0;A2<=499;(AND(B2>=10001;B2<=20000)));"POOR";IF(AND(A2>=0;A2<=499;(AND(B2>20001;B2<=50000)));"POOR";IF(AND(A2>=0;A2<=499;(AND(B2>50001)));"POOR";IF(AND(A2>=500;A2<=999;(AND(B2>0;B2<=10000)));"GOOD";IF(AND(A2>=500;A2<=999;(AND(B2>=10001;B2<=20000)));"FAIR";"POOR")))))
Pero cuando trato de seguir con el siguiente valor de la fila (500-999) de me da error en fórmula... esto es la fórmula que hice y me da error.
=IF(AND(A3>=0;A3<=499;(AND(B3>0;B3<=10000)));"GOOD";IF(AND(A3>=0;A3<=499;(AND(B3>=10001;B3<=20000)));"POOR";IF(AND(A3>=0;A3<=499;(AND(B3>20001;B3<=50000)));"POOR";IF(AND(A3>=0;A3<=499;(AND(B3>50001)));"POOR";IF(AND(A3>=500;A3<=999;(AND(B3>0;B3<=10000)));"GOOD";IF(AND(A3>=500;A3<=999;(AND(B3>=10001;B3<=20000)));"FAIR";IF(AND(A2>=500;A2<=999;(AND(B2>20001;B2<=50000)));"POOR";IF(AND(A2>=500;A2<=999;(AND(B2>50001)));"POOR";"POOR"))))))))
Hacerlo como lo haces tú es un lío. Pero si quieres intento hacerlo con ifs.
Pero a la larga te sale a cuenta hacerlo como lo he hecho yo, porque que pasa si hay 20 filas y 20 columnas, te daría un infarto
SI si... tienes razón... solo que no se como hacerlo por visual basic.. estoy en cero en visual basic... aunque se que es lo mejor y más fácil... si puedes por fa... dime que hacer o donde poner los códigos que me distes... te lo agradecería muchísimo
Atento, no te pierdas.
Has de crear un módulo y meter la fórmula dentro. Si no, no te la va a encontrar.
Suponiendo que no sabes hacer esto. Te explico.
Para crear el módulo, haz lo siguiente.
1 - Aprieta el círculo con el icono del office, lo más arriba a la izquierda.
2 - Le das a opciones de Excel, abajo a la derecha.
3 - Te sale un cuadro de diálogo, está señalado de color naranja Más frecuentes. Señala Personalizar
4 - En la primera lista, arriba te pone Comandos más utilizados. Abre la lista y señala Ficha Programador
5 - Busca Visual Basic y apretás al botón agregar y le das a aceptar
6 - En la barra de tareas que crea office por defecto te saldrá el botón del Visual Basic que has agregado antes.
Por defecto la barra está arriba del todo.
7 - Aprietas el botón de visual Basic.
8 - A la izquierda verás que pone Proyecto - VBAProject y debajo Propiedades - Hoja1
9 - En la parte de Proyecto - VBAProject.
Arriba del todo pone VBAProject(Nombre del libro que usas). A mi me pone VBAProject(Libro1.xlsm)
En esa parte aprietas botón derecho - Insertar - >Módulo
10 - Se te crea una carpeta llamada Módulos y un archivo llamado Módulo1. Haces click en el Módulo1
11 - Pegas la función de arriba aquí, debajo de Option Explicit, el option este da igual, pasa de él
Ya está
No me lo vas a creer!.. NO PUDE HACERLO!
1- Mi office es en ingles, pero eso no es problema porque domino el ingles bastante bien... lo que no encontré fue "Ficha Programador".. así que trate en un excel 2003 portable que tengo... y bueno.. pude encontrar ahí el visual basic.. pero una vez copiado el código completo... ¿qué hago para que la fórmula funcione?
No me lo vas a creer!.. NO PUDE HACERLO!1- Mi office es en ingles, pero eso no es problema porque domino el ingles bastante bien... lo que no encontré fue "Ficha Programador".. así que trate en un excel 2003 portable que tengo... y bueno.. pude encontrar ahí el visual basic.. pero una vez copiado el código completo... ¿qué hago para que la fórmula funcione?
Ok, te pones en una celda del excel. O en la barra de funciones
Si le das al botón de funciones, en el cuadro con todas las fórmulas, abajo del todo, pone Definidas por el usuario, en inglés en tu caso y te saldrá mi fórmula.
Rellenas los datos y te saldrá lo que querías, luego sólo has de arrastrar la celda con la fórmula por las demás y ya te saldrán automáticamente los demás valores
Un millón de gracias por compartir tus conocimientos y sobre todo por tu paciencia :) No te doy más estrellas porque no se puede ;)
Muy agradecido!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas