El Departamento de Contabilidad ingresa los recibos de dinero en diferentes monedas ($, shekels y libras australianas). ¿Es posible ordenar una columna que contiene monedas mixtas por tipo de moneda si el símbolo de moneda está contenido en la misma celda que el monto, o el símbolo de moneda debe estar en una columna separada del monto monetario?
Respuesta1
PREÁMBULO: Al principio no entendí su pregunta, pero luego me di cuenta de que no puede utilizar valores de texto (símbolo de moneda + dígitos) para esto, por lo que debe tratar con celdas que contengan valores formateados para que se muestren como moneda. cantidades pero que en realidad sólo contiene números (simplemente dígitos, sin símbolos de moneda).
Bueno, dado que Excel todavía no proporciona una clasificación basada en el formato de las celdas (además de los colores/íconos) en este momento, la única solución que me viene a la mente es básicamente la segunda en la que planteaste la hipótesis:debe colocar un símbolo de moneda relativo para cada monto (fila) en una columna secundaria; de esa manera podrías hacer una clasificación personalizada de varios niveles(primer nivel en la columna de moneda y segundo nivel en la columna de monto) y ordene sus datos.
Lo que puedo hacer ahora es sugerirle una forma de automatizar el proceso para agilizar las cosas y asumir que no desea hacer cosas como escribir símbolos de moneda para cada fila de monto a mano (¿verdad? ;-D).
Bien, entonces si puedes usar VBA para esto, allá vamos...
1) Coloque el siguiente código VBA en un módulo:
Public Function GetCurrency(ByVal r As Range) As String
Application.Volatile
Static RegX As Object
If RegX Is Nothing Then Set RegX = CreateObject("VBScript.RegExp")
With RegX
.Global = True
.Pattern = "[0-9\-\.,\s]"
GetCurrency = .Replace(r.Text, "")
End With
End Function
2) Ahora, asumiendo que los valores de las cantidades están en la columna "A" y los símbolos de moneda estarán en la columna "B", coloque esta fórmula en la primera fila de la columna B (celda B1):
=GetCurrency(A1)
luego copie esa fórmula para todas las filas posteriores necesarias de la misma columna (B).
Bien, ahora ya tienes las dos columnas, la que tiene valores de montos formateados (A) y la otra que necesitabas y que contiene los símbolos de moneda relativos (B).
TENGA EN CUENTA QUE ESTO FUNCIONARÁ SÓLO SI SE CUMPLEN MIS SUPUESTOS DEL PREÁMBULO Y POR LO TANTO TENÍA LA COLUMNA "A" QUE CONTIENE VALORES NUMÉRICOS FORMATADOS COMO MONEDAS ADECUADAS. DE LO SI NO, TENER FORMATEO MANUAL DE CADA COLUMNA "A" FILA/CELDA EN ESTE PUNTO NO HACE DIFERENCIA NI BENEFICIO/GANANCIA QUE ESCRIBIR DIRECTAMENTE EL SÍMBOLO DE MONEDA A MANO EN CADA COLUMNA "B" FILA/CELDA
3) Ahora seleccione las dos columnas y realice la clasificación personalizada de varios niveles:
Vaya a la cinta "Datos", busque el grupo "Ordenar y filtrar", haga clic en "Ordenar";
Ordenar VALORES DE LA COLUMNA B (primer nivel)
Haga clic en "Agregar nivel"
Ordenar VALORES DE LA COLUMNA A (segundo nivel)
¡y tu estas listo!
PD: Ahora, si lo deseas, puedes incluso ocultar de forma segura la columna "B".
REFERENCIAS: Más sobreclasificación basada en varias columnas.
NOTA FINAL IMPORTANTE:
no tiene que manipular/modificar de ninguna manera los valores en la columna de montos, los símbolos de moneda DEBEN ESTAR en una columna secundaria para esto. No puede simplemente agregar símbolos de moneda a su columna de valores de cantidad porque, de lo contrario, obtendrá la cantidad como valores de texto y, por lo tanto, no podrá ordenarlos correctamente como lo harían los valores numéricos. (Piense, por ejemplo, en lo que sucede cuando tiene "$80", "$30", "$500" como valores de texto: "$500" se ordenará entre "$80" y "$30" porque como caracteres: "8" < "5" < "3"
...Espero que entiendo.)