Jump to content

Buscar valor en celda con varias condiciones


Recommended Posts

Hola a todos. Quería pediros ayuda con esta formula. Envío un archivo adjunto con dos hojas. En una hay un cuadrante de turnos y en la otra una lista de personas. Como es una prueba solo he puesto una persona inventada. 

Lo que necesito es que en el listado de personas busque el ID de la persona en el cuadrante y si la fecha está marcada con una "X" o cualquier dato vaya al listado y en "Horas Teóricas" ponga "5". Si la fecha en el cuadrante está en blanco que ponga "0" horas. La fórmula hay que ponerla en la columna "C" de Listado.

Creo que debo hacerlo con las funciones COINCIDIR y INDICE pero no me aclaro. 

¿podéis ayudarme?

Gracias de antemano.

 

 

 

Prueba turnos.xlsx

Link to post
Share on other sites
Hace 15 horas, torquemada dijo:

Hola @Pirtrafilla.

Prueba esta solución.

Saludos.

Prueba turnos_tor.xlsx 11.6 kB · 3 descargas

Lo primero de todo gracias por responder. Lo cierto es que no funciona como lo necesito pero se acerca mucho. reenvío de nuevo el archivo pero te rectifico la fila A de las dos hojas. Este operario no cambia de ID, es su matrícula de operario. Y el dato solo me lo da correcto en la primera fecha no en el resto de fechas de turno. A ver si pudieras echarle un vistazo y se pudiera solucionar.

Te lo agradezco de verdad.

Moisés.

 

Prueba turnos_tor.xlsx

Link to post
Share on other sites
Hace 12 horas, Gerson Pineda dijo:

Hola a ambos!

Otras 2 soluciones mas para variar, una de ellas es utilizando BUSCARX [disponible en Excel 365]

 

Saludos

Prueba turnos.xlsx 11.17 kB · 3 descargas

Estimado @Gerson Pineda como siempre un placer.

La opción de 365 no la puedo poner en práctica "de momento", y la otra opción funciona en tu fichero pero no consigo adaptarla al mío. Está claro que algo estoy haciendo mal, pero cambiando los rangos de búsqueda y comparación todavía no la he hecho conseguir funcionar. Voy a tener que echarle más horas hasta conseguirlo, porque si te funciona a ti tiene que funcionar si o si a mi. 

En cuanto la haga funcionar te digo, pero estoy como un burro contra una pared.

Muchas gracias.

Link to post
Share on other sites
Hace 3 horas, Pirtrafilla dijo:

Y el dato solo me lo da correcto en la primera fecha no en el resto de fechas de turno. A ver si pudieras echarle un vistazo y se pudiera solucionar.

¿Por qué en la hoja "cuadrante" colocas el ID y el nombre repetidos? Deja el primero y marcas las fechas, donde debes repetir es en la hoja "listado".

Saludos.

Link to post
Share on other sites

La fórmula de Gerson, funciona perfectamente, siempre que sigas los mismos pasos en la hoja "cuadrante" 1 sólo ID y 1 sólo nombre:

=5*("X"=INDICE(Cuadrante!$D$2:$K$10;COINCIDIR(B2;Cuadrante!$B$2:$B$10;);COINCIDIR(E2;Cuadrante!$D$1:$K$1;)))

La pega, es que sólo puedes colocar "X", y no "M" (turno de mañana) "T" (turno de tarde) ó "N" (turno de noche)... o cualquier otra cosa.

Saludos.

Link to post
Share on other sites
Hace 23 horas, torquemada dijo:

La pega, es que sólo puedes colocar "X", y no "M" (turno de mañana) "T" (turno de tarde) ó "N" (turno de noche)... o cualquier otra cosa.

Con una leve vuelta de tuerca, quedaría así

=5*(INDICE(Cuadrante!$D$2:$K$10,COINCIDIR(A2,Cuadrante!$A$2:$A$10,),COINCIDIR(E2,Cuadrante!$D$2:$K$2,))<>"")

o

=SI(INDICE(Cuadrante!$D$2:$K$10,COINCIDIR(A2,Cuadrante!$A$2:$A$10,),COINCIDIR(E2,Cuadrante!$D$2:$K$2,))<>"",5,0)

 

Saludos a ambos!

Link to post
Share on other sites
Hace 3 horas, Gerson Pineda dijo:

Con una leve vuelta de tuerca, quedaría así


=5*(INDICE(Cuadrante!$D$2:$K$10,COINCIDIR(A2,Cuadrante!$A$2:$A$10,),COINCIDIR(E2,Cuadrante!$D$2:$K$2,))<>"")

o

=SI(INDICE(Cuadrante!$D$2:$K$10,COINCIDIR(A2,Cuadrante!$A$2:$A$10,),COINCIDIR(E2,Cuadrante!$D$2:$K$2,))<>"",5,0)

 

Saludos a ambos!

@Gerson PinedaMuchas gracias. 

Os lo agradezco a los dos, me va a ir bien cualquiera de las fórmulas. Y sino en este fichero en otro con la misma situación.

Moisés.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Crear macros Excel

  • Posts

    • no se si esto funciona en mac (hace mucho que no lo uso) antes de mostrar el mensaje, agrega estas dos lineas: AppActivate Application.Caption DoEvents si no funciona, buscamos otras alternativas
    • Héctor, gracias por tu respuesta pero a pesar de cambiar a valor numérico pero aun me mantiene el problema mostrándome el mensaje detrás del formulario.    
    • Buenas noches Antoni primeramente déjame agradecerte por el tiempo que te has tomando en ayudarme con mi proyecto; el dódigo hace lo que esperaba, pero quiciera que al buscar un determinado lote poder teclear el lote primero y al aplastar en el botón donde está la lupa ahí recien se cargue el lote buscado en el formulario; ahorita lo que hace es si tecleo el número 1 del lote "14-0162" y si quiero teclear otro lote  que comience con el 1 me sale el mismo no me deja escribir un nuevo lote y se salta a casillero del código. Al aumentar muchos lotes unos 5000 por ejemplo es demoroso estar buscando en el combobox en el desplegable  el lote que necesito seria mejor que quede como antes que tecleaba el lote en el textbox de "Lote" y al dar click en botón de la lupa(Buscar item) recien aparezca o se carge en los casillero. Por favor es el único inconveniente que se me presentó por lo demás está muy bien. Gracias nuevamente por tu tiempo y espero contar con tu ayuda. Copia de ModificarPintandoFila-1.xlsb
    • Siguiendo con el hilo modifique el código anterior a:  Dim rngDV As Range Dim oldVal As String Dim newVal As String 'Ejecuta el código sólo si cambia una celda If Target.Count > 1 Then GoTo exitHandler Select Case Target.Column Case 7, 24 On Error Resume Next 'check the cell for data validation Set rngDV = Target.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Intersect(Target, rngDV) Is Nothing Then Else Application.EnableEvents = False newVal = Target.Value Application.Undo oldVal = Target.Value Target.Value = newVal If oldVal <> "" Then If newVal <> "" Then Target.Value = oldVal _ & "- " & newVal End If End If End If End Select exitHandler: Application.EnableEvents = True La razón fue que afecta otro código que esta inserto en el evento Private Sub Worksheet_Change. 
    • Buenas tardes tengan todos ustedes, sin encontrar una solución a mi problema hoy acudo a su apoyo. Tengo el siguiente código que me ayuda a seleccionar varios elementos de una lista desplegable: Private Sub Worksheet_Change(ByVal Target As Range) Dim I As Integer Dim xRgVal As Range Dim xStrNew As String Dim xStrOld As String Dim xFlag As Boolean Dim xArr Select Case Target.Column Case 7 On Error Resume Next Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation) If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub If Intersect(Target, xRgVal) Is Nothing Then Exit Sub Application.EnableEvents = False xFlag = True xStrNew = " " & Target.Value & " " Application.Undo xStrOld = Target.Value If InStr(1, xStrOld, xStrNew) = 0 Then xStrNew = xStrNew & xStrOld & " " Else xStrNew = xStrOld End If End Select Target.Value = xStrNew Application.EnableEvents = True End Sub Sin embargo con el anterior código ya no me deja borrar datos de la celda donde esta la lista desplegable.  De antemano gracias por los consejos que podrían darme.     
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy