Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Máximos colaboradores

Popular Content

Showing content with the highest reputation since 12/24/24 in all areas

  1. Al escribir fórmulas debemos evitar siempre que podamos anidar funciones SI (sobre todo cuando tenemos información que se repite). Por favor, prueba la siguiente fórmula: =SI.ERROR( LET( id, B3, fecha_ref, F3, rango_ids, '[Base Snte 05 Coah 2.xlsx]Pagos'!$F$2:$F$10000, rango_fechas, '[Base Snte 05 Coah 2.xlsx]Pagos'!$K$2:$K$10000, rango_resultado, '[Base Snte 05 Coah 2.xlsx]Pagos'!$D$2:$D$10000, diferencia, ABS(rango_fechas - fecha_ref), filtro, (rango_ids = id) * diferencia, min_dif, MIN.SI.CONJUNTO(diferencia, rango_ids, id), fila, COINCIDIR(min_dif, filtro, 0), INDICE(rango_resultado, fila) ), "No encontrado")Coméntanos si funciona.
  2. Israel, gracias por la parte que me toca. He tratado de darle un aire más moderno. Desde 2016 no he hecho un cambio tan grande. Nos vemos!
  3. Antes que nada ¡Muy bonito el foro con el cambio! El Maestro tiene buenos argumentos al pedirle más información, porque con los datos que expone usted sólo se puede aportar alguna idea sencilla: Puede usar las funciones en una fórmula de matriz INDICE y COINCIDIR junto con la lógica de un rango. Como usted tiene 365 no necesita los corchetes, aunque puede afectar el rendimiento dependiendo de la cantidad de los datos porque está relacionando columnas completas. =INDICE(DatosOrigen!A:A, COINCIDIR(VERDADERO, (DatosOrigen!B:B >= MisDatos!B2*0.9)*(DatosOrigen!B:B <= MisDatos!B2*1.1), 0)) Imagine: En su hoja "DatosOrigen", la columna de Folios es la A y la columna de Importes es la B. En su hoja "MisDatos", el Importe aproximado que tienes es la celda B2 (y quieres que el folio aparezca en A2). Importante si es que hay Múltiples Coincidencias: La fórmula traerá el primer folio que encuentre que cumpla con el criterio. Si hay varios importes dentro de su margen de tolerancia, solo devolverá el folio asociado al primero que aparezca en su lista de "DatosOrigen". Adicionalmente le funcionaría mejor Power Query
  4. ¡Saludos, @Matías86 ! Prueba en F4 con la siguiente fórmula: =SUMA((0&C2:C199)*BUSCARV(B2:B199;E10:H11;COINCIDIRX(AÑO(C1);E9:H9);)*(AÑO(A2:A199)=AÑO(C1))) ¡Bendiciones!
  5. Que tal, una posible solución: =BUSCARX(A5,A1:A3,C1:C3,"Fuera de rango",-1) Espero le sea útil. Horas (solucion).xlsx
  6. Hola @ROVER1965 Te adjunto dos tipos de soluciones, la primera es celda por celda con la funcion SUMAR.SI.CONJUNTO y la segunda es una sola formula de Excel 365. Ya nos comentaras. CONSULTA SOBRE FORMULAS EXCEL.xlsx
  7. Con el tiempo transcurrido, falta de seguimiento o falta tiempo de tiempo del autor, termino mi participación en el tema. Saludines
  8. (parece que) ya pasaste de nuevo por tu consulta, asi que, en tanto te decides a soltar mas detales... como tus datos fueron insuficientes... analiza la muestra del adjunto (m365) 1) en las columnas A,B y C los datos donde buscar los valores (si estan en otro libro, cambia las referencias en la primera matriz en las columnas E,F y G) 2) en [E1] indicas el importe a buscar y en [E2] el '%' de tolerancia (+/-), los encontrados se derraman en la matriz [E4#] 3) en [I1] puedes elegir el monto filtrado que consideres mas apropiado (lista tomada de [E4#]), [I2] indica si hay mas de uno 4) en la segunda matriz [I5#] se listan los (RE)filtrados (OJO: que pudiera haber todavia mas de uno) 5) si hubiera mas de uno, la celda [M2] es para elegir de cual de ellos se rescatan los datos (mostrado en [M5]) puede ser que sobren pasos, filtros, etc, pero la falta de detalles es terreno fertil para una imaginacion generosa selecciona tolerancia en lista (ayudaExcel).xlsx
  9. para agilizar propuestas, te sugiero que proveas estos datos en tu siguiente mensaje: 1) el importe que 'ya tienes' (al que refieres en tu formula) 2) la celda donde necesitas el resultado (y la formula exacta con que lo intentas) 3) una imagen (reducida) de los datos en 'el otro libro' (rangos, arreglo, tipo de datos, ...) 4) el resultado que esperas como correcto (y donde se ubica en la imagen que adjuntes)
  10. Abre el adjunto y pulsa sobre el botón. Vale para cualquier cantidad de filas y columnas de Sheet1. copiar color.xlsm
  11. Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
  12. Bueno con el ejemplo así como lo tienes, te puedo compartir que ese error de referencia circular es el que te ayuda a mantener la fecha y la hora "congeladas" podrías evitarlo usando una columna auxiliar para el vacío pero la fórmula AHORA() te cambiara el resultado cada que la hoja se calcule o cuando le des guardar. Sin VBA de por medio será esperar el aporte de algún maestro o usuario avanzado. Si cambias de opinión pasa el tema para la otra sección. Saludos
  13. Para esa versión se me ocurre usar otra web y una UDF: Function InsertQRCode(celda As Range) As String Dim mirango As Range Dim QRCodeURL As String Set mirango = Application.Caller QRCodeURL = "https://quickchart.io/qr?text=" & celda.Value With ActiveSheet.Pictures.Insert(QRCodeURL) .Left = mirango.Left .Top = mirango.Top .Width = mirango.Width .Height = mirango.Height End With InsertQRCode = "" End Function
  14. ¡Saludos, @pep! Revisa el archivo con una propuesta con la opción 1 (de la misma forma, con la opción 2 también es posible). ¡Bendiciones! consulta hojas - celda - datos.xlsx
  15. 1 point
    ¡Saludos, @jues ! Revisa detenidamente la propuesta, donde con base en lo que te he entendido, calculo el "n" día de un mes en particular. ¡Bendiciones!Feriados Moviles (B).xlsx
  16. Hola @RubenDario Faltaría que en cada línea dentro del With le pongas un punto al inicio With Hoja1 .Range("B6:B18,F6:F18,J6:J18").Select .Range("J6").Activate With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With .Selection.ClearContents .Range("A1").Select End With Sin embargo, lo que yo haría (si fuese mi proyecto)... te ofrezco varias soluciones. No asignarlo a una combinación de teclas, mejor ponerlo en una forma o botón. Modificar tu libro con la app Custom UI Editor o similar y adicionar un botón en el Ribbon, estará visible solo cuando el libro esté activo. Al principio de tu código pondría algo como: If Thisworkbook.Name <> ActiveWorkbook.Name Then Exit sub
  17. Buenos días! Estimado @Sergio es una verdadero placer ver y navegar por el nuevo diseño. Estoy seguro que muchos de los que estamos aquí lo estamos disfrutando. El día de ayer 27 de agosto ingresé de nuevo y me llevé una grata sorpresa. Muchas felicidades maestro !! Rubén.
  18. 1 point
    En el mensaje original no comentabas nada de un error, simplemente no te salía el formulario con los valores que deseabas. ¿Es así?
  19. Hola Maku. Yo creo que tu archivo ya cumple lo que quieres! Entiendo que querías una herencia... El primer cuadro lo coloreaste a mano y el segundo ha heredado eso, por lo que está esperando que lo colorees a mano también 😁 Fuera de bromas... Una opción sería que lo hagas con formato condicional y otra opción sería que lo hagas con macros, depende por cuál te inclines y si hay limitaciones en el entorno donde piensas ejecutarlo. Los archivos de macros tienen algunas limitaciones a nivel empresarial por las restricciones impuestas, por temas de seguridad, que impiden su ejecución. Ya nos comentas para poder ayudarte con algo
  20. hay una alternativa mas 'barata' (usando si'es logicos) asumiendo la entrada de horas en [A7] =(a7>=5)+(a7>=13)+(a7>=21) pros: - no usa funciones (rendimiento optimo) - funciona en cualquier version de excel cons: - le ves alguna contra ?
  21. ¡Hola! Te comparto tres soluciones Excel 365 Buscar en intervalos horas - Excel 365_GP.xlsx
  22. prueba con el adjunto 3en1 (ayudaExcel).xlsx
  23. en la muestra de tu adjunto se cumplen las 3 condiciones en los datos superiores (PERO...) te falto indicar el resultado (correcto, a mano) que esperas (segun ingreses en [D11]) en el resumen inferior (en la celda [E11]) ? y algun ejemplo donde NO se cumplan las 3 condiciones (en los datos superiores)
  24. Hola, Este código hace literalmente eso Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("B2")) Is Nothing Then Application.EnableEvents = False Me.Range("B3").ClearContents With Me.Range("B3").Validation .Delete Select Case Me.Range("B2").Value Case 1 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="Avion,Barco" Case 3 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="Barco" Case Else End Select End With Application.EnableEvents = True End If End Sub
  25. Al parecer no hay observaciones adicionales del consultante, esperando la idea sea de utilidad termino mi participación en el tema. Saludines
  26. Podrías compartir tu solucion
  27. Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Asegurarnos de que solo ajustamos las filas a partir de la fila 5 If Not Intersect(Target, Me.Rows("5:" & Me.Rows.Count)) Is Nothing Then Me.Rows("5:" & Me.Rows.Count).AutoFit End If End Sub
  28. Hola, yo recomendaría hacerlo con filtros avanzados en lugar de con autofiltros Filtros - DiegoPC.xlsb
  29. Genial asi es como lo queria.!!! Muchas gracias Antoni!!!
  30. Así como está el ejemplo si agregas un argumento a la fórmula que pusiste debería devolver el resultado que buscas: =BUSCARV(I4,I25:M36,2,FALSO)
  31. Complicado saber si tengo el conocimiento que sirva para recomendarle algo. Le recomiendo hacer una copia del libro, elimine los datos que no se necesitan para mostrar el ejemplo, elimine todos los condicionales, solo deje lo que le permita replicar el error que está viendo, guarde el libro como tipo binario.
  32. Trata con esta correción a la fórmula: =MAX(A:.A)-BYROW(F4:.AK400,LAMBDA(r,SI.ERROR(BUSCAR(2,1/(r=0),F3:.AK3),G3-1))) CONTADOR FINAL (Solucion) (1).xlsb
  33. 'Opción 1 Sub FiltrarSKUPorFecha(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim diccionarioSKU As Object Dim listaEliminar As Object Dim fechaActual As String, fechaSiguiente As String Dim f As Variant With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Crear diccionarios para comparar SKU y almacenar filas a eliminar Set diccionarioSKU = CreateObject("Scripting.Dictionary") Set listaEliminar = CreateObject("Scripting.Dictionary") ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then diccionarioSKU.RemoveAll ' Limpiar el diccionario antes de llenarlo ' Guardar los SKU de la fecha siguiente (solo de la siguiente) For f = fila + 1 To ultimaFila If .Cells(f, 1).Value <> fechaSiguiente Then Exit For diccionarioSKU(.Cells(f, 2).Value) = 1 Next f ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Solo eliminar si el SKU no está en la fecha siguiente If Not diccionarioSKU.exists(.Cells(f, 2).Value) Then listaEliminar(f) = 1 ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar.keys .Rows(f).Delete Next End With MsgBox "Completado correctamente.", vbInformation End Sub 'Opción 2 Sub FiltrarSKUPorFecha1(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim listaEliminar As Collection Dim fechaActual As String, fechaSiguiente As String Dim f As Variant, i As Long Dim SKUExiste As Boolean With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Inicializar la colección para marcar las filas a eliminar Set listaEliminar = New Collection ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Comprobar si el SKU está en la fecha siguiente SKUExiste = False For i = fila + 1 To ultimaFila If .Cells(i, 1).Value <> fechaSiguiente Then Exit For If .Cells(i, 2).Value = .Cells(f, 2).Value Then SKUExiste = True Exit For End If Next i ' Si el SKU no se encuentra en la fecha siguiente, marcar para eliminar If Not SKUExiste Then listaEliminar.Add f ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar .Rows(f).Delete Next f End With MsgBox "Completado correctamente.", vbInformation End Sub TABLA ELIMINAR.xlsm
  34. Hola, Por lo que respecta a gramos, puedes utilizar esta fórmula: =--REGEXEXTRACCION(B3:B35;"(\d+)\s*(?=[gG]\b|gr|GR)") En cuanto a las piezas, habría que ver cuál es el patrón; no sé si, por ejemplo, en el primer artículo ese '2p' equivale a un número de 2 [piezas], pero en los artículos en mayúsculas (a partir de la fila 18) no está clara la forma de identificación. Saludos,
    • 2 downloads
    • Version 1.0.0
    ♠️ Descarga un juego del Rabino programado en Excel. ♥️ Prueba el juego del Rabino en cualquier versión de escritorio de Excel. ♣️ Cuéntame si te funciona este juego de cartas hecho en Excel. ♦️ Dime cuántas partidas le consigues ganar al Rabino en Excel. Salu2, Pedro Wave
  35. Vale mil gracias, en vdd se agradece todo el apoyo y comentarios
  36. Si puedes subir el libro mejor, en caso contrario la hoja afectada y la macro
  37. Function InsertQRCode(celda As Range) As String Dim QRCodeURL As String On Error Resume Next ActiveSheet.Shapes("QR").Delete QRCodeURL = "https://quickchart.io/qr?text=" & celda.Value With ActiveSheet.Pictures.Insert(QRCodeURL) .Name = "QR" .Left = 500 .Top = 25 .Width = 300 .Height = 300 End With InsertQRCode = "" End Function Adáptalo a tus necesidades.
  38. Buen día, Así como está explicado se puede suponer que la función CONTARA() debería ser útil y un VBA similar replicaría lo que hace esa función, no tiene mucho sentido. Ahora, si se trata de deducir (que no es lo mejor) tal vez es posible que usted tenga un rango con diferentes celdas en formato de diferente color y por discriminación necesita contar las celdas que se vayan "despintando", en ese caso la función mencionada NO SERVIRÁ. ¿El rango es fijo? ¿El rango cambia a selección del usuario? ¿Cualquier clase tipo de texto? ¿Se refiere a valores y texto? Por qué no muestra un ejemplo con el resultado a obtener, así es posible recibir mejores propuestas o ideas.
  39. 1 point
    Gracias feliz año 2025 para ti también.
  40. Hola. No hay forma de evitar que un archivo de Excel se abra en otros programas que sean compatibles; asimismo, las macros de VBA no pueden ser usadas en web, solo funcionan en Excel de escritorio. Tal cual lo planteas al parecer quieres un archivo conectado mediante internet para lo que no te será útil Excel.
  41. PERFECTO!!!!! Dar las gracias públicamente a este SEÑOR, que ha tenido la paciencia del Santo Job. Es un crack. Es un trabajazo el que ha hecho, a parte de toooooodas las modificaciones que le he pedido. MUCHÍSIMAS GRACIAS!!!!!!!! Por todo.
  42. @Fernando Reyes Chavarria Es importante seguir la recomendación del Moderador en ampliar los detalles para recibir más posibilidades de ideas. Con lo que describe me parece (o al menos eso entiendo) que busca tener dentro del gráfico dos siluetas donde el relleno se aumente o se disminuya de acuerdo al porcentaje de la operación que viene en su libro, algo como la imagen: Pero con siluetas humanas, creo. De ser así la idea es simple, en su gráfico debe remplazar las formas por las formas humanas transparentes, luego agrupar con las formas que tendrán el relleno auto ajustable que dependerán del resultado de la fórmula. Aunque puedo estar equivocado y queda esperar a que usted de una información más amplia. Saludines
  43. Te entendí bien, pero me quede a medias, únicamente hacia lo que pedias cuando ponías directamente el NHC y no cuando lo buscabas con la lupa, prueba ahora y comenta

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.