archivos csv

29/03/2009 - 21:02 por Demetrio Bujia | Informe spam
Hola

Uso office 2000 y recibi un archivo *.csv en la que tengo casillas como
fecha(dd-mm-aaaa), hora (hh:mm:ss) y otros datos como texto.
el problema es que al extraer los valores de fecha, y al querer
ordenarlos(le asigno a la casilla el formato de fecha personalizada
dd-mm-aaaa) no me los ordena como fecha, sino por dia1 del mes 1; dia 1
del mes 2, etc... es decir no me los ordena por año, mes, dia.
Como se hace para resolver este problema?
Pienso que tendre el mismo problema con las horas ya que hay varios
datos del mismo dia pero que cambia la hora.

Gracias

Demetrio

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/03/2009 - 22:26 | Informe spam
hola, Demetrio !

... office 2000... archivo *.csv... casillas como fecha(dd-mm-aaaa), hora (hh:mm:ss) y otros datos como texto.
... al extraer los valores de fecha, y al querer ordenarlos (le asigno a la casilla el formato de fecha personalizada dd-mm-aaaa)
no me los ordena como fecha, sino por dia1 del mes 1; dia 1 del mes 2, etc... es decir no me los ordena por año, mes, dia.
Como se hace para resolver este problema?
Pienso que tendre el mismo problema con las horas ya que hay varios datos del mismo dia pero que cambia la hora.



1) considera que los datos-fecha (reales) en excel son simplemente numeros seriales (entero=dia fraccion=horas:min:seg)
por lo que su ordenacion sera siempre avanzando (para ascendente) o retrocediendo (para descendente) dia-por-dia

2) si necesitas un orden diferente (p.e. primero los años, luego los meses y despues los dias)
necesitaras apoyarte en una columna auxiliar (p.e.) usando la funcion =texto(a2,"aaaa-mm-dd")
y tomar esta columna auxiliar como la base de ordenacion para tus datos-fecha

3) con relacion a las fracciones (datos de tiempo) no es claro si son en celdas aparte o estan en la misma celda
(cuestion de incluirlas o no en el formato al aplicar la funcion texto(...) -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Demetrio Bujia
30/03/2009 - 21:55 | Informe spam
Hola Hector Miguel:



Entendi bien lo de usar columnas auxiliares y de hecho con la funcion
extraer extraje en tres columnas el año, el mes y el dia. Y ordene todo
en base a esas tres columnas.

Pero el problema me viene porque por cada dia hay varias senalaciones.
Pero si uso otras tres columnas auxiliares para las horas, minutos y
segundos, al final no puedo ordenar todo bien ya que la opcion que me da
el excel son tres opciones por vez. Y ordenar todo a mano no tengo tanto
tiempo para hacerlo.

Hay alguna manera de ordenar teniendo en cuenta 6 criterios a la vez
en Excel?

O alguna macro?

saludos

Demetrio



Héctor Miguel escribió:
hola, Demetrio !

... office 2000... archivo *.csv... casillas como fecha(dd-mm-aaaa), hora (hh:mm:ss) y otros datos como texto.
... al extraer los valores de fecha, y al querer ordenarlos (le asigno a la casilla el formato de fecha personalizada dd-mm-aaaa)
no me los ordena como fecha, sino por dia1 del mes 1; dia 1 del mes 2, etc... es decir no me los ordena por año, mes, dia.
Como se hace para resolver este problema?
Pienso que tendre el mismo problema con las horas ya que hay varios datos del mismo dia pero que cambia la hora.



1) considera que los datos-fecha (reales) en excel son simplemente numeros seriales (entero=dia fraccion=horas:min:seg)
por lo que su ordenacion sera siempre avanzando (para ascendente) o retrocediendo (para descendente) dia-por-dia

2) si necesitas un orden diferente (p.e. primero los años, luego los meses y despues los dias)
necesitaras apoyarte en una columna auxiliar (p.e.) usando la funcion =texto(a2,"aaaa-mm-dd")
y tomar esta columna auxiliar como la base de ordenacion para tus datos-fecha

3) con relacion a las fracciones (datos de tiempo) no es claro si son en celdas aparte o estan en la misma celda
(cuestion de incluirlas o no en el formato al aplicar la funcion texto(...) -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
30/03/2009 - 22:44 | Informe spam
hola, Demetrio !

... si uso otras tres columnas auxiliares para las horas, minutos y segundos
al final no puedo ordenar todo bien ya que la opcion que me da el excel son tres opciones por vez.
Y ordenar todo a mano no tengo tanto tiempo para hacerlo.
Hay alguna manera de ordenar teniendo en cuenta 6 criterios a la vez en Excel?
O alguna macro?



puedes ordenar el rango completo por el menu si la ordenacion la llevas a cabo de derecha a izquierda (3 en 3)
o por codigo (haciendo esto mismo) con una macro +/- como la siguente:

Sub OrdenarVariasColumnas()
Dim Col As Integer
With ActiveCell.CurrentRegion
For Col = .Columns.Count To 1 Step -3
Select Case Col
Case 1: .Sort _
Key1:=.Columns(Col), Order1:=xlAscending
Case 2: .Sort _
Key1:=.Columns(Col - 1), Order1:=xlAscending, _
Key2:=.Columns(Col), Order2:=xlAscending
Case Else: .Sort _
Key1:=.Columns(Col - 2), Order1:=xlAscending, _
Key2:=.Columns(Col - 1), Order2:=xlAscending, _
Key3:=.Columns(Col), Order3:=xlAscending
End Select
Next
End With
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#4 Lisandro Gracias
01/04/2009 - 22:22 | Informe spam
"Héctor Miguel"


Intente ordenar de derecha a izquierda de tres en tres, pero no va.
Porque cuando me ordena por hora minuto segundo, me desordena las
fechas.. :-((

En cuanto a las macros, se hacer algunas no muy complejas con las
herramientas que da el Excel, pero soy nulo por programacion.

Se me ocurrieron dos cosas:

a) encontrar una macro que ordene por seis o mas criterios al mismo
tiempo. si es que alguien la hizo

b) una macro que a las columnas que tengan fechas u horas, de texto las
pase automaticamente a fecha - hora, y asi con estos dos criterios puedo
usar el menu "ordenar" del Excel.

En cuanto a la macro que me pusiste, no se como usarla (asi de nulo soy).

Un saludo



Héctor Miguel escribió:
hola, Demetrio !

... si uso otras tres columnas auxiliares para las horas, minutos y segundos
al final no puedo ordenar todo bien ya que la opcion que me da el excel son tres opciones por vez.
Y ordenar todo a mano no tengo tanto tiempo para hacerlo.
Hay alguna manera de ordenar teniendo en cuenta 6 criterios a la vez en Excel?
O alguna macro?



puedes ordenar el rango completo por el menu si la ordenacion la llevas a cabo de derecha a izquierda (3 en 3)
o por codigo (haciendo esto mismo) con una macro +/- como la siguente:

Sub OrdenarVariasColumnas()
Dim Col As Integer
With ActiveCell.CurrentRegion
For Col = .Columns.Count To 1 Step -3
Select Case Col
Case 1: .Sort _
Key1:=.Columns(Col), Order1:=xlAscending
Case 2: .Sort _
Key1:=.Columns(Col - 1), Order1:=xlAscending, _
Key2:=.Columns(Col), Order2:=xlAscending
Case Else: .Sort _
Key1:=.Columns(Col - 2), Order1:=xlAscending, _
Key2:=.Columns(Col - 1), Order2:=xlAscending, _
Key3:=.Columns(Col), Order3:=xlAscending
End Select
Next
End With
End Sub

saludos,
hector.


Respuesta Responder a este mensaje
#5 Héctor Miguel
02/04/2009 - 00:47 | Informe spam
hola, Lisandro !

__ 1 __
Intente ordenar de derecha a izquierda de tres en tres, pero no va. Porque cuando me ordena por hora minuto segundo, me desordena las fechas.. :-((



1) el "detalle" (seguramente) es que primero debes mantener seleccionado TODO el rango
y la ordenacion la debes aplicar "empezando" por las 3 columnas mas a la derecha
SIN de-seleccionar en cada ordenacion el rango completo -???-

__ 2 __
En cuanto a las macros, se hacer algunas no muy complejas con las herramientas que da el Excel, pero soy nulo por programacion.
Se me ocurrieron dos cosas:
a) encontrar una macro que ordene por seis o mas criterios al mismo tiempo. si es que alguien la hizo
b) una macro que a las columnas que tengan fechas u horas, de texto las pase automaticamente a fecha - hora
y asi con estos dos criterios puedo usar el menu "ordenar" del Excel.
En cuanto a la macro que me pusiste, no se como usarla (asi de nulo soy).



2) la propuesta de macro ya mantiene seleccionado el rango completo (usa la propiedad ".CurrentRegion" para ello)
solo debes copiar/pegar la macro en un modulo de codigo estandar en el editor de vba (atajo: Alt + F11)
agregas un modulo (menu: insertar / modulo) y lo pegas en la ventana "grande" que se abre para ese modulo

luego selecciona una celda "dentro" de la region total y ejecutas esa macro

saludos,
hector.

__ OP __
... si uso otras tres columnas auxiliares para las horas, minutos y segundos
al final no puedo ordenar todo bien ya que la opcion que me da el excel son tres opciones por vez.
Y ordenar todo a mano no tengo tanto tiempo para hacerlo.
Hay alguna manera de ordenar teniendo en cuenta 6 criterios a la vez en Excel?
O alguna macro?



puedes ordenar el rango completo por el menu si la ordenacion la llevas a cabo de derecha a izquierda (3 en 3)
o por codigo (haciendo esto mismo) con una macro +/- como la siguente:

Sub OrdenarVariasColumnas()
Dim Col As Integer
With ActiveCell.CurrentRegion
For Col = .Columns.Count To 1 Step -3
Select Case Col
Case 1: .Sort _
Key1:=.Columns(Col), Order1:=xlAscending
Case 2: .Sort _
Key1:=.Columns(Col - 1), Order1:=xlAscending, _
Key2:=.Columns(Col), Order2:=xlAscending
Case Else: .Sort _
Key1:=.Columns(Col - 2), Order1:=xlAscending, _
Key2:=.Columns(Col - 1), Order2:=xlAscending, _
Key3:=.Columns(Col), Order3:=xlAscending
End Select
Next
End With
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida