Excel - Problema con macro contar coincidencias ??

 
Vista:
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 20/08/2019 09:40:39
Buenas de Nuevo.

Tengo esta macro hecha por mí con grabadora (no doy más de sí) trabaja con esta formula
=SUMA(N(MMULT(N(CONTAR.SI(DESREF(C$5:H$5;FILA(C$5:C$10000)-FILA(C$5););$L1:$Q1)>0);{1;1;1;1;1;1})=4))
Para contar coincidencias de 2, 3, 4, 5,6 números de las familias en de valores de L: CL con C: H
El rango real es mínimo en L: CL es de 150.000 claro cada grupo tarda +- 50 minutos, habría otra macro que fuese mucho más rápida ¿?

Ahora tengo otra sorpresa que acabo de ver y esta fórmula la daba por buena y es que veo que no hace la función que yo pensaba.

Ejemplo:
EN L:R SEGUNDA FILA DEBERIA
SER EN R 1 COINCIDENCIA DE 4
NUMEROS CON FILA 5 DE C:H

Subo Libro.

Salud2....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 20/08/2019 10:29:56
Primero no entiendo que es lo que pretendes que haga la fórmula, ni lo que quieres conseguir.

Segundo en la celda S1 hay una fórmula compuesta de varias funciones y una de ellas (DESREF) da error.

Tercero:

Las fórmulas acostumbran a ser más rápidas que una macro, pero tienen sus pegas y es que cuando tienes miles de ellas y tienen que buscar el listas muy largas ya no son tan rápidas y se ponen a recalcular cada vez que Excel lo encuentre necesario.

Las Macros pueden no ser tan rápidas pero tienen la ventaja de que se pueden optimizar y la puedes ejecutar solo cuando sea necesario, el problema es que necesitas un programador humano y no el GRABAR MACRO.

Si quieres puedes explicar la operativa y enviarme el fichero con todos los datos, los 150.000, con el ejemplo anterior no sirve, para buscar la solución más rápida y más óptima.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 20/08/2019 14:30:07
Bueno intento nueva explicación,

Libro nuevo en Hoja 2 más centrado, Hoja 1 plantilla original hasta rango 150.000 mínimo.

Hoja2.

Ejemplo:
Formula en R

1
=SUMA(N(MMULT(N(CONTAR.SI(DESREF(A$5:F$5;FILA(A$5:A$10000)-FILA(A$5););$L1:$Q1)>0);{1;1;1;1;1;1})=4))

L: R en fila 2 busca contar cuatro coincidencias con C: H encontrando las coincidencias en fila 5 y 8, resultado en R2 =2

L: R en fila 5 busca contar cuatro coincidencias con C: H encontrando las coincidencias en fila 7, pero……. resultado en R2 =0 ¿???

Sé que si pongo en })=4)) esto })=5)) pues cuenta 1, pero como busco contar 4 coincidencias ¿??

Y en Hoja 1.

Formulas visibles en R y Z

Plantilla original con la macro por grabadora, que tomo la fórmula en color amarillo como referencia para correrla a mano y después copio pego a valores para que el libro sea menos pesado al abrirlo de nuevo.

Son 150.000 mínimo filas x 10 bloques.

Y como ya comente al ejecutar la macro de grabadora por bloque 50 minutos y a mano bloque a bloque puf……..

Espero que se entienda ahora.

Subo Libro.

Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 20/08/2019 22:37:12
He conseguido hacer el libro más pequeño para poder subirlo. Adjunto archivo.

Haber si lo entiendo:

Buscas las coincidencias de cada fila de la columnasd L:R ( siete números) el las columnas C:H, teniendo en cuenta que en esta última el número más grande es el 49 ¿Que pinta la columna R?

Entiendo que lo que se quiere en las columnas S , AA , AI, etc es el numero de filas en las columnas C:H que aparecen 3 o 4 de los números de las filas ROSA o de las columnas L:Q

Teniendo en cuenta que en el primer grupo hay 6998 filas , en el segundo grupo hay 150000 filas y 10 columnas esto da como resultado

1
2
3
6998 * 150000 * 10 = 10.497.000.000 Comparaciones
 
10.497.000.000 Comparaciones + el tiempo de mostrar 1.500.00 de resultados * 300 micras por celda

Eso quiere decir que si cada comparación se realiza en 1 micra de segundo ( 1/1000000 o dicho de otro forma un millón de comparaciones en un segundo) tarda casi 175 minutos + 7,5 de mostrar los datos o lo que es lo mismo 3 horas.

Una Macro podría ahorrar mucho tiempo saltando las muchas de las líneas del primer grupo.

Ahora la gran pregunta es ¿Para que sirve esto? ¿Que finalidad tiene todo esto?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 21/08/2019 11:46:35
He creado una macro que tarda 5 minutos en comprobar toda la tabla, para comprobar 3 números y el truco esta en no hacer todas las comparaciones posibles.

El primer paso consiste en crear una tabla de 500.000 elementos, creo que sobran algunos, y utilizo como indice la combinación de la tabla pequeña de los números de cada fila tomados de 3 en 3 sin repetir. Ejemplo la fila 1 - 2 - 3 - 11 - 16 - 21

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
010203
010211
010216
010221
010311
010316
010321
011116
011121
011621
020311
020316
020321
021116
021121
021621
031116
031121
031621
111621

Este numero se usa como indice de la tabla y se contabiliza cuantas veces a salido, por ejemplo el 1 - 2 - 3 sale 4 veces

El segundo paso consiste en hacer grupos de tres con cada fila de la zona rosa buscar en el tabla y sumar las cantidades.

Un caso curioso y como esta hay muchos es la combinación 1 - 2 - 5. El uno solo esta la columna C, el 2 solo esta en la columna D pero el 5 esta en las columnas E y F.

Para que todo esto funcione cada fila ha de tener ordenados lo 6 números de menor a mayor.

Estoy realizado las ultimas pruebas y envío la macro y el libro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 21/08/2019 15:10:35
ok

Espero pacientemente.

Salud2...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 22/08/2019 09:07:53
La macro para Buscar 3 coincidencias es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub Cuenta_3()
    Dim Fila As Integer, Tabla(500000) As Integer, Num As Long, Total As Integer, _
        Fil As Long, Col As Integer, a As Integer, b As Integer, c As Integer, Ini As Single
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ini = Timer
 
    Sheets("Hoja1").Select
 
    ' ---&--- La tabla de consulta para 3 ACIERTOS
 
    Fila = 5
    While Cells(Fila, 3) <> ""
        For a = 3 To 6
            For b = a + 1 To 7
                For c = b + 1 To 8
                    Num = (Cells(Fila, a) * 10000) + (Cells(Fila, b) * 100) + Cells(Fila, c)
                    Tabla(Num) = Tabla(Num) + 1
                Next
            Next
        Next
        Fila = Fila + 1
    Wend
 
    ' ---&--- Busca coincidencias
 
    For Col = 12 To 84 Step 8
        For Fil = 1 To 150000
            Total = 0: DoEvents
            For a = Col To Col + 3
                For b = a + 1 To Col + 4
                    For c = b + 1 To Col + 5
                        Num = (Cells(Fil, a) * 10000) + (Cells(Fil, b) * 100) + Cells(Fil, c)
                        Total = Total + Tabla(Num)
                    Next
                Next
            Next
            Cells(Fil, Col + 7) = Total
        Next
    Next
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
 
    MsgBox "Fin de la Macro" & vbCrLf & _
           "Tiempo de ejecucion " & Timer - Ini & " seg."
End Sub

Esta se come un montón de recursos y solo sirve para 3 coincidencias.

La macro ha tardó 343 seg en hacer todos los números


Ahora tengo una pregunta: si tengo la secuencia de la fila 1 de la primera columna: 1 - 2 - 3 - 4 - 5 - 6

Y en las columnas C:H tengo: 1 - 2 - 4 - 5 - 7 - 20

Según la macro tiene las siguiente coincidencias:

1
2
3
4
1 - 2 - 4
1 - 2 - 5
1 - 4 - 5
2 - 4 - 5

O sea cuatro coincidencias, ¿Es correcto? en principio SI pero ¿Es lo que se desea? Esto es algo a lo que no puedo responder porque no se que finalidad tiene esto.

Como el fichero es muy grande y ya he tenido problemas con el enzipado , enzipar con WinZip y desenzipar con WinRar no funciona hago un truco del almendruco para subir el fichero

Cuando lo descarques como:

CONTAR COINCIDENCIA PLANTILLA_V5.xlsb.zip

renombralo comó:

CONTAR COINCIDENCIA PLANTILLA_V5.xlsb


Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 22/08/2019 10:24:08
Por cierto buscar 4 coincidencias es un poquito más complicado.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 22/08/2019 12:35:15
Te adjunto el fichero BAS para buscar coincidencias con 3 y 4 cifras.

Es lo mismo que muestro aqui.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Option Explicit
 
' </> ------------------------------------------------------------------- </>
' </> ---&--- </>   TRES   COINCIDENCIAS                      </> ---&--- </>
' </> ------------------------------------------------------------------- </>
 
Sub Cuenta_3()
    Dim Fila As Integer, Tabla(500000) As Integer, Num As Long, Total As Integer, _
        Fil As Long, Col As Integer, a As Integer, b As Integer, c As Integer, Ini As Single
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ini = Timer
 
    Sheets("Hoja1").Select
 
    ' ---&--- La tabla de consulta para 3 ACIERTOS
 
    Fila = 5
    While Cells(Fila, 3) <> ""
        For a = 3 To 6
            For b = a + 1 To 7
                For c = b + 1 To 8
                    Num = (Cells(Fila, a) * 10000) + (Cells(Fila, b) * 100) + Cells(Fila, c)
                    Tabla(Num) = Tabla(Num) + 1
                Next
            Next
        Next
        Fila = Fila + 1
    Wend
 
    ' ---&--- Busca coincidencias
 
    For Col = 12 To 12    ' 84 Step 8
        For Fil = 1 To 1  ' 150000
 
            Total = 0: DoEvents
 
            For a = Col To Col + 3
                For b = a + 1 To Col + 4
                    For c = b + 1 To Col + 5
                        Num = (Cells(Fil, a) * 10000) + (Cells(Fil, b) * 100) + Cells(Fil, c)
                        Total = Total + Tabla(Num)
                    Next
                Next
            Next
            Cells(Fil, Col + 7) = Total
        Next
    Next
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
 
    MsgBox "Fin de la Macro" & vbCrLf & _
           "Tiempo de ejecucion " & Timer - Ini & " seg."
End Sub
 
' </> ------------------------------------------------------------------- </>
' </> ---&--- </>   CUATRO COINCIDENCIAS                      </> ---&--- </>
' </> ------------------------------------------------------------------- </>
 
Sub Cuenta_4()
    Dim Fila As Integer, Num As Long, Total As Integer, _
        Fil As Long, Col As Integer, Ini As Single, _
        Dest As Long, Ante As Long, Punt As Long
 
    Dim Tabla(), a As Long, b As Long, c As Long, d As Long, _
        Canti()
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ini = Timer
 
    ' ---&--- Crea una hoja de trabajo
 
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Select
    Sheets(Sheets.Count).Name = "Tmp"
 
    Sheets("Hoja1").Select
 
    ' ---&--- La tabla de consulta para 4 ACIERTOS
 
    Fila = 5
    Dest = 0
    While Cells(Fila, 3) <> ""
        For a = 3 To 5
            For b = a + 1 To 6
                For c = b + 1 To 7
                    For d = c + 1 To 8
                        Num = (Cells(Fila, a) * 1000000) + _
                              (Cells(Fila, b) * 10000) + _
                              (Cells(Fila, c) * 100) + _
                              (Cells(Fila, d) * 1)
                        Dest = Dest + 1
                        Sheets("Tmp").Cells(Dest, 1) = Num: DoEvents
                    Next
                Next
            Next
        Next
        Fila = Fila + 1
    Wend
 
    ' ---&--- Ordena la tabla
 
    Columns("A:A").Select
    ActiveWorkbook.Worksheets("Tmp").Sort.SortFields.Clear
 
    ActiveWorkbook.Worksheets("Tmp").Sort.SortFields.Add _
                   Key:=Range("A1"), _
                   SortOn:=xlSortOnValues, _
                   Order:=xlAscending, _
                   DataOption:=xlSortTextAsNumbers
 
    With ActiveWorkbook.Worksheets("Tmp").Sort
        .SetRange Range("A1:A" & Dest)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
    Range("A1").Select
 
    ' ---&--- Guarda los datos en una tabla en memoria
 
    Punt = 0
    Ante = 0
    For a = 1 To Dest
        If Ante <> Cells(a, 1) Then
           Ante = Cells(a, 1): Punt = Punt + 1
           ReDim Preserve Tabla(Punt), Canti(Punt)
           Tabla(Punt) = Ante
           Canti(Punt) = 1
        Else
           Canti(Punt) = Canti(Punt) + 1
        End If
    Next
    Application.DisplayAlerts = False: ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
 
    Sheets("Hoja1").Select
 
    ' ---&--- Busca coincidencias
 
    For Col = 12 To 84 Step 8
        For Fil = 1 To 150000
 
            Total = 0: DoEvents
 
            For a = Col To Col + 2
                For b = a + 1 To Col + 3
                    For c = b + 1 To Col + 4
                        For d = c + 1 To Col + 5
                            Num = (Cells(Fil, a) * 10 ^ 6) + (Cells(Fil, b) * 10 ^ 4) + _
                                  (Cells(Fil, c) * 10 ^ 2) + (Cells(Fil, d) * 10 ^ 0)
                            Punt = Buscar_Tabla(Tabla, Num)
                            If Punt > 0 Then Total = Total + Canti(Punt)
                        Next
                    Next
                Next
            Next
            Cells(Fil, Col + 7) = Total
        Next
    Next
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
 
    MsgBox "Fin de la Macro" & _
            vbCrLf & _
            vbCrLf & _
           "Tiempo de ejecucion " & Timer - Ini & " seg."
End Sub
 
' </> ------------------------------------------------------------------- </>
' </> ---&--- </>   Busca el numero en la tabla               </> ---&--- </>
' </> ------------------------------------------------------------------- </>
 
Function Buscar_Tabla(Tabla, Num) As Long
    Dim Punt As Integer, Celda As Long, Valor As Long, Max As Long
 
    Punt = 1
    Max = UBound(Tabla)
 
    While 2 ^ Punt < Max
        Punt = Punt + 1
    Wend
    Punt = Punt - 1
    Celda = 2 ^ (Punt): Valor = 0
 
    ' ---&---
 
    While Punt > 0
        Select Case Num
            Case Is < Tabla(Celda)
                Punt = Punt - 1
                Celda = Celda - (2 ^ Punt)
 
            Case Is > Tabla(Celda)
                Punt = Punt - 1
                Celda = Celda + (2 ^ Punt)
 
            Case Is = Tabla(Celda)
                Punt = 0
                Valor = Celda
 
       End Select
 
        ' Delimita el número maximo de lineas de la Hoja
 
        While Celda > Max
            Punt = Punt - 1
            Celda = Celda - (2 ^ Punt)
        Wend
    Wend
    If Tabla(Celda) = Num Then
        Buscar_Tabla = Celda
    Else
        Buscar_Tabla = 0
    End If
End Function
 
' </> ------------------------------------------------------------------- </>
' </> ---&--- </>                                             </> ---&--- </>
' </> ---&--- </>   FIN  MACRO                                </> ---&--- </>
' </> ---&--- </>                                             </> ---&--- </>
' </> ------------------------------------------------------------------- </>

El de 4 cifras tarda en rellenar toda la hoja 11 minutos y medio (693 seg.) pero el tiempo puede variar según el ordenador.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 22/08/2019 19:37:57
Hola Antoni.

En el hilo me haces varias preguntas últimas.

Prefiero centrarme en esta de momento, para no liar el asunto (creo que es lo mejor)

Cuando preguntas debo hacerlo sin liar mucho el tema, o por lo menos intentarlo.

Subí como ejemplo contar 3 coincidencias, que por macro individual y digo individual, necesitaría para contar 3,4 y 5 coincidencias, ya que las uso en carpetas diferentes con libro diferentes. Pensando siempre que al conseguir el tema con el primer ejemplo contar para 3 coincidencias solo me quedaría preguntar después como acoplar la macro para 4 y 5 ( a veces logro entenderla y no preguntaría) pero veo más abajo la macro para contar 4 coincidencias, es así ¿??

En cuanto a la pregunta en este post de:

1
2
3
Ahora tengo una pregunta: si tengo la secuencia de la fila 1 de la primera columna: 1 - 2 - 3 - 4 - 5 - 6
 
Y en las columnas C:H tengo: 1 - 2 - 4 - 5 - 7 – 20

Pues este sería otro detalle no visto que no hacia la formula, pues como bien dices contando 3 coincidencias serian 4

Descargue el archivo, lo descomprimo y me sale esto ¿?
IMAGEN

.
Bueno mientras voy a copiar las macros y probar para contar 3 y 4 en el libro plantilla.


Salud2…
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 22/08/2019 20:42:55
Acabo de comprobar las macros:

Solo he probado la que cuenta 3 coincidencias, pega todos los resultados una columna más adelante, ejemplo: la copia seria en R la hace en S, copia seria en Z la hace en AA, copia seria en AH la hace en AI ect.. ¿?? O algo hice mal ¿??

Subo libro de contar 3 y cuatro coincidencias para que los mires.

https://www.dropbox.com/s/jaeauu0vepguoum/CONTAR%203%20COINCIDENCIAS.xlsm?dl=0

https://www.dropbox.com/s/lmgeyy5ngt1nnbk/CONTAR%204%20COINCIDENCIAS.xlsm?dl=0

Salud2….
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 22/08/2019 21:23:48
El libro que te envío NO lo tienes que descomprimir.

Si editas en nombre del fichero veras, porque el explorador te oculta la extensión, que termina como .xlsb.zip
Lo tienes que renombrar QUITAR el .ZIP esta sin comprimir.

Empecemos por el primer grupo, los demás serán igual, ¿donde tiene que poner el resultado la macro, la R o la S?

Y otra pregunta ¿que es lo que hay en la columna R?

Para 5 aciertos hay que hacer otra macro que es muy parecida a la de 4 aciertos y si tengo un rato modificare la de 3 aciertos para que siga el mismo criterio que la de 4.

Si te interesa saber como funciona o dicho de otra forma como se tratan los datos para que funciona tan rápido, te lo puedo explicar pero si no me lo ahorro que la idea creo que es mas larga de explicar que de programar.

Lo que si te explicare es sobre los tipos de ficheros del EXCEL y porque usar cada uno de ellos.

.XLSX Este formato NO acepta macros.
.XLSM Este formato SI acepta macros.
.XLSB Este formato SI acepta macros. Igual que el anterior.

En principio tenemos dos tipos de archivos, los que aceptan macros y lo que no. pero ¿y el ultimo formato?

Empecemos por los dos primeros: cuando se le da a grabar en formato XLSX y XLSM los datos de la hoja de calculo se transforma en formato XML crea varios ficheros y carpetas y los comprime en un fichero.

El formato XLSB se guarda casi como un volcado de memoria y que ventaja tiene es algo más seguro y sobre todo más rapido al guardar y al abrir porque no tiene que convertir la información XML a datos en memoria.

Eso explica los ficheros que han salido al intentar abrirlo, el sistema ha visto la extensión .zip (que esta aunque no la veas) y en lugar del Excel a utilizado el WinZip o WinRar o el que tengas. Y por eso han salido:

Los directorios y el fichero:

1
2
3
4
_rels
docProps
xl
[Content_Types]

Si midas dentro podrás comprobar como guarda Excel la información.

No lo envío comprimido porque lo comprimí con el Winzip, me lo envíe a casa y no lo pude descomprimir con el WinRar

saludos.
\\//_

P.D.: Al abrir el fichero me dice que tiene una referencia a otro fichero y no se donde esta, porque molesta un poquito al abrirlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 23/08/2019 08:54:08
Te envío la macro para calcular coincidencias de 3, 4 y 5.
La estructura es buena pero esta sin probar y puede que se me haya escapado algún error tonto.
Esta tarde o el fin de semana la pruebo y te comento que tal va.
Ya esta arreglado para que ponga el número una columna antes es decir escribe el resultado en R en lugar de S, en Z en lugar de AA, etc.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 23/08/2019 15:10:41
Pues ala espera de que la pruebes.

Yo acabo de probar y me da error en
1
Case 3: Total = Buscar_Coincidencias_3(Fil, Col, Tabla, Cant)

Salud2..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 24/08/2019 22:35:40
La macro esta probada y verificada

Adjunto 4 ficheros.

Uno es un TXT que es la macro para 3, 4 y 5 coincidencias. No se puede separar es un solo paquete para los tres casos.

Después hay cuatro libros Excel SIN comprimir, SOLO tienes que RENOMBRAR y eliminar la terminación .ZIP

El fichero CONTAR 3 COINCIDENCIAS.xlsb es el que he usado de base para probar la macro y tiene la macro buena.

los otros tres ficheros es el resultado de la macro.

RESULTADO - 3.xlsb
RESULTADO - 4.xlsb
RESULTADO - 5.xlsb


Que por sus nombres creo que reconocerás.

Te cuento que macros hay:

Tiene 4 macros ademas de la tuya.

Contar_0_Coincidencias
Contar_3_Coincidencias
Contar_4_Coincidencias
Contar_5_Coincidencias

La primera ejecuta las otras tres.
Pone en la celda A1 el tiempo que tardo en ejecutarse y graba el resultado el los tres ficheros que te envío y muestra un mensaje de que finalizo la macro.
Las otras tres macros cuando finalizan muestran un mensaje de fin de la macro y el tiempo de ejecución.

En la parte inferior de la ventana del Excel se van mostrando unos mensajes de que esta haciendo la macro para saber por donde va.


Saludos.
\\//_
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 24/08/2019 23:45:29
Hola Antoni.

Para acabarme de aclarar.

Entonces de todos los archivos que adjuntas el bueno solo es el segundo CONTAR 3 COINCIDENCIAS.xlsb ???

Si es asi los otros para que sirven ???

Tiene mucha importancia la extension del libro de xlsb a xlsm, lo digo por que mis libros estan en xlsm ???

Y por ultimo es dificil esta macro adaptarla solo para trabajar con un grupo solo, ejemplo B:G (de 500.000 filas) con R:W (de 500.000 filas) resultado en X.
Seria para finalizar en otro tema similar en otro libro.

Salud2....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 25/08/2019 00:48:36
El libro CONTAR 3 COINCIDENCIAS.xlsb es el ultimo que me enviaste con la macro buena.
Los otros tres son el resultado de ejecutar la macro para 3, 4 y 5 coincidencias.
El libro con formato .xlsb es más pequeño que el .xlsm, es más rápido de abrir y de guardar.
En un mensaje anterior ya explique la razón.
Puedes usar el formato que quieras: .xlsm o .xlsb en contenido es el mismo guardado de forma diferente.

Para adaptarlo solo tienes que modifica las dos lineas del FOR

1
2
3
4
5
6
7
8
9
Sub Cuenta_Conincidencias(Tipo, Todo)
    ...
    ' ---&--- Busca coincidencias
 
    For Col = 12 To 84 Step 8   ' <== Empieza en la columna L (12) y hasta la CF (84) saltando de 8 en 8, 
        ...                     '      es decir 12(L) - 20(T) - 28(AB)
        For Fil = 1 To 150000   ' <== Empieza en la Fila 1 hasta la  Fila 150.000
    ...
End Sub

En el caso que propones la modificación seria esta:

1
2
3
4
5
6
7
8
9
Sub Cuenta_Conincidencias(Tipo, Todo)
    ...
    ' ---&--- Busca coincidencias
 
    For Col = 18 To 18
        ...
        For Fil = 1 To 500000
    ...
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 25/08/2019 11:50:49
Hola.

Estoy intentando acoplar esto ultimo para contar 5 coincidencias en uno de los libros y algo falla, me da este error:

-
1
2
3
---&--- </>   Crea claves de 5 digitos
 
Sheets("Tmp").Cells(Dest, 1) = Num

Los rangos son desde fila 2 ,B:G y R:W resultado en X, filas totales 107.430

Subo la macro entera acoplada.

La macro general , ahora la mirare.

Salud2...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 25/08/2019 15:06:44
Por favor puedes enviarme el libro para ver donde falla.

Gracias.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 26/08/2019 09:00:07
No entiendo que pretendes hacer en este último libro.

Tienes dos grupos de columnas B:G y R:W que son exactamente iguales. ¿Que quieres comparar?

Tampoco entiendo la finalidad de la hoja anterior.
Analizando el fichero descubrí que tiene que ver con la Bonoloto que es un juego de apuestas español para quien no sepa de que va.

En las columnas C:H son los números jugados ,supongo, y en las columnas L:CK todas o algunas de las combinaciones posibles
Si esto es así no entiendo que sentido tiene todo esto

He contado 150.000 líneas por 10 columnas que son un total 1.500.000 combinaciones de números del 1 al 49 y en realidad hay 13.983.816
Desde el 1 – 2 – 3 – 4 – 5 – 6 hasta el 44 – 45 – 46 – 47 – 48 – 49.

Necesito saber que quieres conseguir para poder ayudarte mejor.

Si no quieres poner cierta informa en el foro podemos seguir en privado. En la cabecera esta mi correo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 26/08/2019 15:18:35
mandado correo

Salud2....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Eugenio (105 intervenciones) el 27/08/2019 09:19:23
Algun problema con el correo, no llego ??

Salud2....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problema con macro contar coincidencias ??

Publicado por Antoni Masana (2477 intervenciones) el 27/08/2019 09:38:37
Si llego correctamente.

Ahora lo estoy leyendo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar