Saltar al contenido

funcion si con funcion logia y o anidadas.


apoptygma

Recommended Posts

publicado

Mi consulta es la siguiente.

tengo .....

celda b con un precio,

celda c un num entero

celda d tambien un num entero.

quiero que en la celda E que hasta ahora y antes de anadir las celdas c y d tenia puesta esta formula que como resultado me ponia en la celda e o bien la celda en blanco. cuando b no tenia ningun importe, la celda e quedaba blanco, o en caso de que lo tuviera que hiciera el calculo correspondiente a la formula que detallo a continuacion.SI(bxx="";"";e11*bxx*margen aplicable)

margen aplicable es una celda que tengo definida a parte de la que yo modifico el porcentaje segun me convenga.

pero ahora necesito crear una condicion para la celda exx teniendo en cuenta lo siguiente.….

Cuando b vacia e vacia.

cuando b con precio , pero c o d vacia en la celda e me ponga el precio de b.

Solo cuando b tenga importe y las celdas c y d tengan datos hacer la operacion.

la operacion para e es el resultado de b11*c11*margen aplicable. y en otros casos sera b11*c11*impuestos*margen aplicable/dxx.

Espero que me haya explicado con claridad , si hay algo por favor me lo dicen .

Espero que alguien me pueda decir como debo hacer para poner esta formula correctamente .

saludos cordiales.

consulta.xls

publicado

Muchas gracias por tu ayuda, en caso de que tenga alguna duda mas , te importa que me ponga en contacto contigo directamente, o debo lanzar la pregunta en general.

Grcias por tu ayuda.

- - - - - Mensaje combinado - - - - -

BUENAS NOCHES, si no te import te adjunto la hoja pero veras que te he explicado el pie de la misma que es lo que necesito en este caso, es mas rebuscado y mis conocimientos no llegan, si me puedes ayudar te lo agradecere.

cualquier aclaracion que tengas sobre mi planteamiento , me lo dices , no se si me haya expresado bien en mi explicacion.

un saludo.

CONSULTA 2.xls

consulta.xls

publicado

Buenas noches , si efectivamente, te mande un excel el CONSULTA 2, en el que te explico que es lo que quisiera hacer, es similar al anterior, pero observando, me di cuenta de que me faltan algunas cosa, que son las que te he `puesto en la misma hoja de excel, si pudieras ayudarme , te lo agradecceria.

Quedo a la espera de que me digas si puedes , o si no es posible.

Un saludo.

publicado

Estimado amigo apo,

La lógica es la misma que en la planilla anterior. Lo que te propongo es que lo intentes vos mismo. ¿acaso queres que trabaje por ti tambien?

un abrazo!

publicado

buenas godinez, respecto a tu comentario, tu crees que si yo supiera como se hace andaria preguntando por los foros?, ya te digo yo que no ojala pudiera hacerlo con mis conocimientos pero por desgracia se lo que se , no se mas por ahora.

yo tengo bien claro lo que quiero y la logica la aplico, pero no se como desarrollar las formulas a esa logica, no es mas que eso.

y para nada ni mucho menos mi intencion es la de que trabajes para mi, eres libre de ayudar o no, eso nadie lo discute, y si lees mi mensaje lo que hize fue preguntarte si podias o no , nada mas, si no puedes o no quieres o no te apetece , lo entiendo perfectamente, pero yo no pretendo obligar a nadie, veo que hay un foro al cual entiendo que puedo pedir ayuda y el que quiere la da y el que no tambien.

No quiero que te molestes por mi respuesta, pero solo contesto a tus preguntas.

ahora bien revisando por encima lo que me mandaste, lamento decirte que no hace lo que quiero , pero despues de ver tu contestacion como comprenderas ni me atrevo a pedirte que me heches un cable.

si quieres ayudarme en sacar esta formula que como te digo yo no soy atosuficiente para hacerlo, me lo dices y te dire con lo que te pedi donde estan los errores , pero no puedo solucionarlos yo porque no soy ni mucho menos un usuario avanzado ni medio .

tu diras que es lo que quieres, o si puedes o no.

de todas maneras agradezco lo que has hecho hasta ahora.

repito si quieres seguir ayudandome te agradecere que lo digas , para buscarme la ayuda por algun otro medio.

Un saludo amigo.

publicado

Buenas tardes Vladief: Gracias por tu ayuda, pero creo que no has captado lo que queria que haga, o probablemente no me explico bien, lamentablemente viendo la formula no soy capaz de averiguar donde esta el, o los errores, pero si veo que no hace lo que yo quiero.

Si quieres que te intente explicar mas , dimelo y por mi encantado. No pretendo que me solucionen la vida, ni que ma hagan mi trabajo, simplemente intento ver de que manera puedo aplicar la formula, en base a lo que me interesa.

Lo dicho, si crees que puedes ayudar yo intentare explicarte mas claramente que es lo que pretendo que haga.

Espero tu respuesta, y nuevamente gracias y saludos.

publicado

Apoptygma:

Sube el archivo de nuevo con los valores a mano de lo que te debería dar según las condiciones que tienes. El amigo vladief puso unas variables que tú no pusiste y que realmente no sabemos si es lo que necesitas al tú no indicar de dónde sacas esos valores del margen ni del impuesto.

Saludos a todos.

publicado

Hola Apoptigma

Mi estimado la intención de este foro y de todas las personas que participamos en el, es la de prestar ayuda voluntaria a todas las personas que así lo requieran. También pienso que no es necesaria la confirmación de la voluntad de cooperación de un participante ya que para eso intervenimos en este foro.

Respecto a creer que si puedo colaborar esta claro que esa es la intención, y de no ser así estoy seguro de que algún otro participante lo hará gustoso.

Ya entrando en el tema y tal como lo mencionas, tienes razón no comprendo muy bien lo que requieres, por ello quisiera que aclares lo siguients:

- La segunda consulta no es igual a la primera consulta, supongo que la valedera es esta ultima, no??. De ser asi en la segunda consulta tal como lo menciona el amigo Julibaga, no existen o no se copiaron algunos datos.

Finalmente seria útil que adjuntaras algún ejemplo con los resultados que esperas.

Saludos.

publicado

muchas gracias por tu respuesta , aqui te mando el archivo y explicandote lo que quiero que haga en cada caso y que valores deberian salir para que quede mas calro.

cualquier duda al respecto me lo dices y te intento explicar.

quedo a la espera de tus noticias .

- - - - - Mensaje combinado - - - - -

apreciado vladief, acabo de subir un excel y explico como lo qiero y que resultados deberia obtner.

si te parece oportuno puedes mirar y si podemos asi sacar la formula ideal para estos casos.

muchisimas gracias por tu ayuda desinteresada.

saludos.

EJEMPLO.xls

publicado

Hola apoptigma

Envió tu archivo con las modificaciones solicitadas, este archivo contiene 2 pequeñas macros de evento a tomar en cuenta para que puedas modificar el rango de acción de las macros según lo requieras.

Respecto a tus formulas no modifique ninguna, porque entiendo que cumplen su objetivo.

Cualquier cosa me avisas.

Saludos

EJEMPLO-vef.xls

publicado

vladief:

muchas gracias por tu ayuda.

esta perfecto lo de las macros, pero la cuestion es que para mi es ya un nivel super avanzado, no se como debo hacer para que las pueda tener en la hoja real con mis datos.

Desconozco si es facil de hacer o teniendo en cuenta mis conocimietos quizas sea demasiado complicado, por no decir inutil. no puedo responderte a eso.

No se si tu crees que con alguna indicacion pueda hacerlo yo , o no.

si te parece espero tu respuesta sobre lo que consideres mas adecuado.

u saludo y gracias por tu apoyo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.