Jump to content

Como ordenar información con coincidencia parcial?


nikotesla

Recommended Posts

Estimados!!!  buenas tardes.

Tengo el siguiente problema y no se como resolverlo. 

Dispongo de una base de datos con muchos emails. Muchos de estos emails, que son de distintos destinatarios son sí de la misma empresa. Entonces me gustaría poder ordenar esa información por empresa.  Por ejemplo tengo esta información:

 

aaaa@fp.com

bbbb@hg.com

cccc@ml.com

dddd@fp.com

eeee@hg.com

fffff@ml.com

 

Querría poder ordenarlos de la siguiente manera (así con sus respectivas filas, pues tiene información de contacto, nombre, detalles, etc)

 

aaaa@fp.com

dddd@fp.com

cccc@ml.com

fffff@ml.com

eeee@hg.com

bbbb@hg.com

 

 

Les agradezco de antemano!!!

 

muchas gracias!!!

 

 

 

Link to comment
Share on other sites

Hace 1 hora, nikotesla dijo:

Querría poder ordenarlos de la siguiente manera (así con sus respectivas filas, pues tiene información de contacto, nombre, detalles, etc)

 

aaaa@fp.com

dddd@fp.com

cccc@ml.com

fffff@ml.com

eeee@hg.com

bbbb@hg.com

Nos puedes explicar cuál es la lógica que implica este orden

Link to comment
Share on other sites

Lo único que se me ocurre es dividir la columna por delimitador usando el caracter @.

A continuación ordena la columna que contiene los dominios.

Para finalizar usa la función CONCATENAR (veo que tienes Excel 2016) para volver a unir las cadenas de texto ya ordenadas.

Link to comment
Share on other sites

Hola a todos,

Una solución para M365 podría ser, suponiendo que el rango a evaluar sea A1:A6 :

=ORDENARPOR(A1:A6;TEXTODESPUES(A1:A6;"@"))

que desplegará una matriz con los resultados deseados........ pero eso sí, por orden estrictamente alfabético de dominio; es decir:

aaaa@fp.com
dddd@fp.com
bbbb@hg.com
eeee@hg.com
cccc@ml.com
fffff@ml.com

Saludos,

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Link to comment
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
  • 28 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      150
    • Comments
      87
    • Reviews
      25

  • Crear macros Excel

  • Posts

    • Equipo buenas noches, espero esten bien. Soy nuevo en este mundo del vba de excel. En sintesis mi proyecto es crear estados de cuenta para clientes, para ello disene en excel un estado de cuenta, ahora toca salvar en pdf, esa parte esta lista para un solo documento, pero tengo un data validation list con todos mis clientes, la idea es que se cree un loop que vaya nombre por nombre de la lista y me salve un pdf por cada cliente en una ruta previamente definida. les dejo el codigo que tengo hasta el momento para ver si me pueden ayudar:   Option Explicit Sub GuardarEstado()     Dim nombredearchivo As String     Dim NombreHoja As String     Dim HojaDestino As Range     Dim NuevaFila As Integer     Dim i As Integer     Dim j As Integer     Dim NumFactura As String     Dim Ruta As String     Dim dataValidationCell As Range     Dim dataValidationListSource As Range     Dim dvValueCell As Range     Dim lastrow As Range                    NombreHoja = "Log"     NumFactura = ThisWorkbook.Sheets("Estado").Range("ValCliente").Value     nombredearchivo = "Estado"     Ruta = "C:\Users\jfamilia\Desktop\archivos bck\Archivos Clinimed\Archivos\Estados de cuentas"          Worksheets("Estado").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _                     Ruta & "\" & "Estado De Cuenta-" & NumFactura & ".pdf", Quality:=xlQualityStandard, _                     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True '----- Defining Variables With ThisWorkbook.Sheets(NombreHoja)     For i = 1 To 1         Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion         NuevaFila = HojaDestino.rows.Count + 1         .Cells(NuevaFila, 1).Value = Date         .Cells(NuevaFila, 2).Value = Range("ValCliente").Value         .Cells(NuevaFila, 3).Value = Range("ValCodigo").Value         .Cells(NuevaFila, 4).Value = Range("ValCorte").Value         .Cells(NuevaFila, 5).Value = Range("ValBalance").Value         .Cells(NuevaFila, 6).Value = Range("ValAtraso").Value         .Cells(NuevaFila, 7).Value = Range("ValFacVen").Value                               Next i End With MsgBox "Alta exitosa", vbInformation, "EXCELeINFO" End Sub
    • Buenas, @DeadGoreRed Entiendo que ese código lo has grabado desde la grabadora de macros. Algo muy sencillo sería que identificaras una casilla en concreto de cada hoja (puede ser la misma o diferente) y chequearas si tiene o no datos, es decir, si no cumple la condición para que siga ejecutándose el código. Si no lo cumple, puedes incluir algo del tipo "Goto..." para pasar a otra zona del código donde se encuentre la siguiente hoja a chequear. La mejor opción en el caso de que todas tus hojas tuvieran una estructura de datos iguales es que incluyeras al inicio un bucle del tipo "For each" para que pasara por cada hoja del libro y en caso de cumplirse la condición ejecutara el código. Así no tendrías ese código tan largo para hacer lo mismo en cada hoja. Si te parece bien la idea, podemos intentar incluir esas pequeñas modificaciones y lo pruebas. Un saludo, Tese
    • Sub FORMATO() ' ' TEXTO_COLUMNAS Macro '      Sheets("A-S1-001").Select          Range("J2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _         FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True     Selection.NumberFormat = "h:mm:ss"     Range("K2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K2").Select     Application.CutCopyMode = False     ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"     Range("K2").Select     Selection.Copy     Range("K2:K1001").Select     ActiveSheet.Paste     Selection.End(xlUp).Select     Columns("K:K").Select     Application.CutCopyMode = False     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _         :=False, Transpose:=False     Application.CutCopyMode = False     Range("K1").Select     Selection.AutoFilter     ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _         "00:00:00"     Range("K1000").Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K1").Select     ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11     Range("K2").Select     ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Clear     ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Add2 Key:=Range( _         "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _         xlSortNormal     With ActiveWorkbook.Worksheets("A-S1-002").Sort         .SetRange Range("A2:N1000")         .Header = xlNo         .MatchCase = False         .Orientation = xlTopToBottom         .SortMethod = xlPinYin         .Apply     End With     Selection.End(xlUp).Select     Selection.End(xlToLeft).Select          Sheets("A-S1-002").Select          Range("J2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _         FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True     Selection.NumberFormat = "h:mm:ss"     Range("K2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K2").Select     Application.CutCopyMode = False     ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"     Range("K2").Select     Selection.Copy     Range("K2:K1001").Select     ActiveSheet.Paste     Selection.End(xlUp).Select     Columns("K:K").Select     Application.CutCopyMode = False     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _         :=False, Transpose:=False     Application.CutCopyMode = False     Range("K1").Select     Selection.AutoFilter     ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11, Criteria1:= _         "00:00:00"     Range("K1000").Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K1").Select     ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11     Range("K2").Select     ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Clear     ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Add2 Key:=Range( _         "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _         xlSortNormal     With ActiveWorkbook.Worksheets("A-S1-002").Sort         .SetRange Range("A2:N1000")         .Header = xlNo         .MatchCase = False         .Orientation = xlTopToBottom         .SortMethod = xlPinYin         .Apply     End With     Selection.End(xlUp).Select     Selection.End(xlToLeft).Select          Sheets("A-S1-003").Select          Range("J2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _         FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True     Selection.NumberFormat = "h:mm:ss"     Range("K2").Select     Range(Selection, Selection.End(xlDown)).Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K2").Select     Application.CutCopyMode = False     ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"     Range("K2").Select     Selection.Copy     Range("K2:K1001").Select     ActiveSheet.Paste     Selection.End(xlUp).Select     Columns("K:K").Select     Application.CutCopyMode = False     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _         :=False, Transpose:=False     Application.CutCopyMode = False     Range("K1").Select     Selection.AutoFilter     ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _         "00:00:00"     Range("K1000").Select     Range(Selection, Selection.End(xlDown)).Select     Selection.ClearContents     Range("K1").Select     ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=11     Range("K2").Select     ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Clear     ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Add2 Key:=Range( _         "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _         xlSortNormal     With ActiveWorkbook.Worksheets("A-S1-003").Sort         .SetRange Range("A2:N1000")         .Header = xlNo         .MatchCase = False         .Orientation = xlTopToBottom         .SortMethod = xlPinYin         .Apply     End With     Selection.End(xlUp).Select     Selection.End(xlToLeft).Select Módulo3.bas
    • Hola Antoni. El libro en cuestión no tiene ninguna macro. ¿UDF? ¿QUE ES? El libro tiene 41 hojas. Una por cada VALOR del IBEX 35 más 6 de propios cálculos. El cursor parpadea varias veces cada minuto al actualizarse AHORA(). Si pongo macros para actualizar Ahora() cada segundo, el parpadeo es casi constante. El libro es de PETETE (gordo), 36,2 MB. Muchísimas gracias por tu atención. P.D. ¿Podría ser la consulta a WEB de BOLSA MADRID?
    • Sin entrar en la solución que te propone @Antoni, que dado quién lo hace funcionará estupendamente, ¿has pensado en utilizar un Combobox en lugar de un Textbox para filtrar por año? Quizás podrías cargarlo cuando haces el primer filtrado del TextBox, de manera que te aparecieran las opciones posibles del valor AÑO para ese cliente al desplegar el Combobox. Un saludo a todos, Tese
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy