Macros de excel esperando respuesta

Entiendo que no todas las preguntas se pueden contestar de la misma forma o rapidez, la cuestión es que me tiene sin dormir este asunto, es un proyecto para un amigo y si funciona me sentiré muy realizado, por el momento me tiene frito, y no se por donde pillarlo, seguramente sea más fácil de lo que me pienso, pero me encerré y ya no puedo salir. Por favor suplico ayuda para solucionar este asunto.

La cuestión es que no consigo que me muestre el contenido de la columna A de la fila que coincida con los criterios de la fórmula adjunta, si alguien tiene alguna duda de lo que pido, por favor indicármelo y lo aclaro más, por favor ayudarme.

=SI(largo(H14)=0;"";SI(1−sumaproducto(('reservastotales' !F2:F843<=FECHA(MoYear;MoMonthNum;H14))∗( 'reservastotales' !G2:G843>=FECHA(MoYear;MoMonthNum;H14))∗('reservastotales' !T2:T843="MODELO"));"MODELODISPONIBLE";"RESERVADO"))

1 Respuesta

Respuesta
2

[Hola

¿Has caído en cuenta que sin ver tu archivo prácticamente tendríamos que adivinar que es lo que intentas hacer con esa fórmula? Sugiero subas a algún "Drive" al menos una parte de los datos del archivo y comparte el enlace por aquí. Agrega/comenta, además de la fórmula en cuestión, el resultado que desearías.

Saludos]

Abraham Valencia

Correcto, pero creía que estaría más bien claro.

En una hoja "calendario" tengo la fórmula en cuestión, compara la fecha de la celda H14, en otra hoja "reservastotales" tengo los datos,

numero_referencia colomna A,

fecha_inicio en columna F,

fecha_fin en columna G,

Modelo en columna T

Con la fórmula busco los que fecha_inicio/fecha_fin coincida con la celda H14, y modelo con la columna T.

Actualmente me indica "MODELO DISPONIBLE" si no encuentra coincidencia y "RESERVADO" si encuentra algún registro que coincida.

Bien, pues necesito que en lugar de poner "RESERVADO" si encuentra coincidencia, me ponga el contenido de la columna A numero_referencia de la fila que coincide con el registro encontrado con fecha_inicio y/o fecha_fin & modelo en los términos de H14.

Gracias

[Hola

Sí, se entendió mejor. Con "Sumaproducto" no podrás conseguirlo, necesitas usar otras funciones, por ejemplo "Indice" y "Coincidir".

Vamos a suponer que tienes todo en una tabla llamada "Tabla1" y que los valores a buscar están en "G3", "G4" y "G5" y que en "G6" quieres la referencia, entonces debes usar una fórmula matricial así en dicha última celda:

=INDICE(Tabla1[Referencia],COINCIDIR(G3&G4&G5,Tabla1[Fecha i]&Tabla1[Fecha f]&Tabla1[Modelo],0),1)

No olvides que las matriciales se ingresan presionado "Control" + "Shift" + "Enter" o no dará resultados y segundo, yo uso "coma" como separador de lista, parece que tú usas "punto y coma" solo reemplaza.

Comentas

Abraham Valencia

Gracias, la verdad me ha ayudado a poder dormir de nuevo, jiji, tengo que adaptarlo a mis necesidades, pues necesito que cuando no encuentre coincidencia, ponga "DISPONIBLE".

Por otro lado, alguna idea de como tengo que hacer para que no meló compare con una fecha, sino que me encuentre si se encuentra entre unas fechas.

Es un calendario y en cada día pongo la fórmula, por lo que si una reserva es del 15/05/2018 al 18/05/2018 me ponga el contenido de la columna A de los días 15-16-17-18.

Hable con mi amigo, y no me autoriza para enviar el archivo, por que tiene muchos datos de personas, y le da recelo que se envi, para poder enviar el archivo tendría que cambiar mil cosas por lo que al final no seria válido para las pruebas, (cosa que tengo que cambiar, pues es muy recurrente los datos están por todos los lados)

Espero haber explicado un poco lo que necesito, es complicado.

Pues sí, es más complicado hacerlo con fórmulas si quieres usar en realidad rangos de fechas y mucho más si en realidad tienes varias coincidencias con los parámetros pues hay que usar varias fórmulas en donde habría que usar también funciones como "Fila" o "k.esimo.menor" o similares.

Mi sincera recomendación es que usen "filtros" así de modo muy fácil podrán tener el resultado esperado con todas las coincidencias.

Abraham Valencia

Muchas gracias,

Pues es complicado ya que es un calendario, en la celda de día, el que me tiene que mostrar si esta reservado(pone la referencia, cosa que me has ayudado), si esta libre pone disponible, pero actualmente me lo pone, cuando coincide con la fecha de inicio, pero claro, las reesrvas son de más de un día, por lo que no me reconoce los días de reservas, solo el inicial, y el resto no.

He conseguido adaptarlo para que me ponga referencia si esta reservado, o el mensaje "disponible" si no esta, pero solo en el día en el que inicia la reserva.
Aun me queda por llorar más de un día, pero a cabezón no me gana, sudare y llorare, pero lo conseguiré.

Gracias por todo abraham

Por cierto, esta es la fórmula adaptada, por si a alguien le sirve.(Fórmula matricial)

=SI(largo(H14)=0;"";SI(1-sumaproducto(('reservas totales'!F2:F843<=FECHA(MoYear;MoMonthNum;H14))*('reservas totales'!G2:G843>=FECHA(MoYear;MoMonthNum;H14))*('reservas totales'!T2:T843="MODELO A"));"modelo a disponible";(INDICE('reservas totales'!A:A;COINCIDIR(FECHA(MoYear;MoMonthNum;H14)&"MODELO A";'reservas totales'!F:F&'reservas totales'!T:T;0);1))))

Creo que la única salida que les queda es usar macros, pero hay que saber algo de VBA para eso y no sé como andan en el tema.

Saludos]

Abraham Valencia

Gracias, la verdad, ahora mismo la hoja tiene más macros que formulas, tengo mucho avanzado, formulario de reservas, botones que aparecen o no según el modelo y reserva y condiciones de celda, búsquedas con macros también, impresiones de formularios, vamos que llevo varios meses liado con el asunto. Por lo cual, si existe un macro que me pueda hacer esto no sería inconveniente adaptarlo, aunque se parecido, no me importa, la cuestión es que avanzo entre lo poco que se, y lo que voy encontrando por la web. Poco a poco y sudando al final consigo lo que necesito, una vez lo termine, voy a borrar los datos susceptibles, adaptar a que sea general sin datos en concreto y lo colgare en algún lado para que todos puedan usar para su propio fin.

Ojala y alguien me pueda ayudar.

No obstante, millón de gracias.

Prueben algo así, suponiendo varias cosas:

- La tabla se llama "Tabla1"

- Tiene las mismas características de la que envié en la imagen de ejemplo

- La fecha está en "G3" y el modelo en "G5" y trabajas en la hoja activa

Entonces, algo así filtraría los datos mostrándote solo los que coinciden:

Sub Filtrando()
Dim MiFecha As Date, MiFecha2 As Date
Dim Modelo As String
Let MiFecha = Range("G3").Value
Let MiFecha2 = Range("G4").Value
Let Modelo = Range("G5").Value
With ActiveSheet.ListObjects("Tabla1")
    .Range.AutoFilter Field:=2, Criteria1:=">=" & Format(MiFecha, "mm/dd/yyyy"), Operator:=xlAnd
    .Range.AutoFilter Field:=3, Criteria1:="<=" & Format(MiFecha2, "mm/dd/yyyy"), Operator:=xlAnd
    .Range.AutoFilter Field:=4, Criteria1:=Modelo
End With
End Sub

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas