Jump to content

Fórmulas o macros


Antoni

Recommended Posts

Mas que una consulta, se trata de pensamiento filosófico existencial:

¿Debemos usar siempre que podamos fórmulas?

A raiz de esta consulta en el foro de fórmulas,  Extraer rangos numéricos me he puesto a pensar.

La consultante plantea un problema que afecta a 50.000 filas.

La solución de Silvia, brillante como siempre :wub:, suponen 100.000 fórmulas.

Esta macro de algunas pocas líneas hace lo mismo.

Sub BuscarIntervalos()
Application.ScreenUpdating = False
For x = 5 To Range("B" & Rows.Count).End(xlUp).Row
   Range("D" & x) = Range("B" & x)
   Range("E" & x) = ""
   x1 = x + 1
   Do Until Range("B" & x1) <> Range("B" & x1 - 1) + 1
      x1 = x1 + 1
   Loop
   If Range("B" & x1 - 1) <> Range("B" & x) Then
      Range("E" & x) = Range("B" & x1 - 1)
   End If
   x = x1 - 1
Next
End Sub

Apunto esto como reflexión en una aburrida y angustiosa tarde de calor (40º), .......... a lo mejor es que se me han frito los sesos. :P

Ya se, ya se, esto mejor en la Cafetería, a la próxima, ¿Vale?.

.

Link to post
Share on other sites

@Antoni:

Ayer yo preguntaba sobre "Funciones Matriciales", por que me asombra que con formulas "Matriciales" o no matriciales, también se pueden resolver los problemas, que claro yo estoy acostumbrado a resolverlos con "Macros", a mis posibilidades claro. y uno de los inconvenientes que encontré en las Matriciales es que no puedes insertar una fila después de ejecutar una Matricial...

Creo que todo tiene su pro y su contra como siempre...según sea el caso.

Pero creo que es bueno dominar ambas cosas... por si te preguntan jajaja:D

Y haciendo el ejercicio con 50,000 filas el peso del archivo de @Silvia es 3 veces más que con el tuyo, con Macros.

Saludos.

 

 

 

Link to post
Share on other sites
Guest Cacho R
Hace 13 horas, Antoni dijo:

... en una aburrida y angustiosa tarde de calor (40º), ..... a lo mejor es que se me han frito los sesos.

Por lo general una "fritura" como la aludida suele ser independiente del status climático (cualquiera sea éste). :D:lol:

En todo caso y viendo el tema de un modo integral diría que:

- 50 mil filas de datos es suficiente razón para considerar a una macro como la solución más eficiente.

- De ser así, dicha solución debería tener en cuenta un eventual desorden de los datos a evaluar y disponer el resultado del análisis de un modo más amigable. Por ejemplo:

Ejemplo509.xlsm

Saludos para todos, Cacho R.

Link to post
Share on other sites
Hace 8 horas, Cacho R dijo:

Por lo general una "fritura" como la aludida suele ser independiente del status climático (cualquiera sea éste). :D:lol:

En todo caso y viendo el tema de un modo integral diría que:

- 50 mil filas de datos es suficiente razón para considerar a una macro como la solución más eficiente.

- De ser así, dicha solución debería tener en cuenta un eventual desorden de los datos a evaluar y disponer el resultado del análisis de un modo más amigable. Por ejemplo:

Ejemplo509.xlsm

Saludos para todos, Cacho R.

¡Mira que cuco él! ...... también te aburres ¿Verdad? :lol::lol::P

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • Crear macros Excel

  • Posts

    • Sin ver la solución de Mauricio: Sub filtrar() ' ' filtrar Macro ' ' ActiveSheet.Range("$C$3:$C$4962").AutoFilter Field:=1, Criteria1:=Array( _ "</BCE:Balanza>", "<?xml version=""1.0"" encoding=""UTF-8""?>", _ "<BCE:Balanza xmlns:BCE=""http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""", _ "<BCE:Ctas NumCta=""100-""", "<BCE:Ctas NumCta=""101-""", _ "<BCE:Ctas NumCta=""102-""", "<BCE:Ctas NumCta=""200-""", _ "<BCE:Ctas NumCta=""201-""", "<BCE:Ctas NumCta=""301-""", _ "<BCE:Ctas NumCta=""302-""", "<BCE:Ctas NumCta=""303-""", _ "<BCE:Ctas NumCta=""400-""", "<BCE:Ctas NumCta=""401-""", _ "<BCE:Ctas NumCta=""402-""", "<BCE:Ctas NumCta=""501-""", _ "<BCE:Ctas NumCta=""502-""", "<BCE:Ctas NumCta=""503-""", _ "<BCE:Ctas NumCta=""504-""", "<BCE:Ctas NumCta=""601-""", _ "<BCE:Ctas NumCta=""602-""", "Anio=""2020""", "Debe=""0.00""", "Debe=""10900.00""", _ "Debe=""14854.75""", "Debe=""1538.16""", "Debe=""19684.00""", "Debe=""19726.34""", _ "Debe=""2593.76""", "Debe=""298831.38""", "Debe=""376399.24""", _ "Debe=""38831.90""", "Debe=""422506.96""", "Debe=""4946.00""", _ "Debe=""535673.00""", "Debe=""54279.41""", "Debe=""55014.62""", _ "Debe=""689769.61""", "Debe=""700.00""", "Debe=""70063.90""", "Debe=""724350.70""", _ "Debe=""7353.00""", "Debe=""7524.38""", "Debe=""7524.50""", "Debe=""757568.34""", _ "Debe=""788022.29""", "Debe=""797477.71""", "Debe=""850.00""", "Haber=""0.00""", _ "Haber=""10000.00""", "Haber=""10595.00""", "Haber=""108558.82""", _ "Haber=""121.00""", "Haber=""13405.50""", "Haber=""13641.58""", _ "Haber=""155190.18""", "Haber=""156.59""", "Haber=""178.00""", "Haber=""1802.31""", _ "Haber=""2018.66""", "Haber=""2088.00""", "Haber=""21350.00""", _ "Haber=""23289.44""", "Haber=""2593.76""", "Haber=""2914.44""") End Sub  
    • Sub Transponer() Application.ScreenUpdating = False fila = 1 For x = 2 To Range("A" & Rows.Count).End(xlUp).Row cadena = Split(Range("B" & x), "|") For y = 0 To UBound(cadena) fila = fila + 1 Range("D" & fila) = Range("A" & x) Range("E" & fila) = cadena(y) Next Next End Sub  
    • Hola!! A ver si alguien me puede ayudar con una macro, necesito transponer  los registros que están contenido en una celda que tienen un separador "|". Pongo un ejemplo: Inicialmente tengo esto 2 columnas: refe  productos A       1|2|3|4|5 B       6|7 Y quiero que la macro en cuestión me lo haga así: refe productos A      1 A      2 A      3 A      4 A      5 B     6TRANSPONER CADENA TANTAS VECES SE REPITA.xlsx B     7   Muchas gracias de antemano. Un saludo.
    • me imagino, aun asi, en los enlaces esos no dicen como se hace en excel no?
    • Yo en su día lo intente, y aun tengo dolores de cabeza... Los posibles beneficios (dar al botoncito y que salieran los turnos) no compensaba con la infinidad de problemas que surgían es cuestiones como las que apunta @Austrolopitecus, turnos partidos, descansos no programados, cambios de turnos, etc. Al final decidí que poniéndolos a mano y llevando el control de las rotaciones era mucho mas fácil para mi. No obstante te dejo dos enlaces por si te interesa. wwwpuntopgplanningpuntoes wwwpuntoaturnospuntocom
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy