Constantemente tengo problemas para trabajar con fechas en Excel, debo estar haciendo algo mal pero no entiendo qué.
Tengo una hoja de cálculo, exportada desde nuestro servidor de intercambio, que contiene una columna con fechas. Han salido en formato estadounidense a pesar de que estoy en el Reino Unido.
La columna en cuestión se ve así
04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011
En Excel, he resaltado la columna y seleccionado Format Cells...
. En este cuadro de diálogo, seleccioné Date
, seleccioné English (United States)
como la configuración regional y elegí el formato de fecha correspondiente de la lista. Aprieto OK e intento ordenar los datos por esta columna.
En el cuadro de diálogo Ordenar, elijo esta columna, seleccione Ordenar en valores, pero el orden solo me da opciones para la A a la Z, no desde la más antigua hasta la más nueva, como era de esperar.
Esto a su vez ordena los datos de fecha por los primeros dos dígitos.
Soy consciente de que podría volver a formatear estos datos a ISO y luego la clasificación de la A a la Z funcionaría, pero no debería haberlo hecho, obviamente me falta algo. ¿Qué es?
EDITAR: Arruiné la recompensa, pero esto debería haber ido a la respuesta de @r0berts , su primera sugerencia de Texto a columnas sin delimitador y eligiendo 'MDY' como el tipo de datos que funciona. Además, si tiene un tiempo (es decir 04/21/2015 18:34:22
), primero debe deshacerse de los datos de tiempo. Sin embargo, después de eso, el método sugerido por @ r0berts funciona bien.
Respuestas:
El problema: Excel no quiere reconocer las fechas como fechas, a pesar de que a través de "Formato de celdas - Número - Personalizado" está tratando explícitamente de decir que son fechas por "
mm/dd/yyyy
". Como sabes; cuando Excel ha reconocido algo como una fecha, lo almacena además como un número, como "41004
" pero se muestra como fecha según el formato que especifique. Para agregar a la confusión, Excel puede convertir solo una parte de sus fechas, como 08/04/2009, pero dejar otras, por ejemplo, 28/07/2009 sin convertir.Solución: pasos 1 y luego 2
1) Seleccione la columna de fecha. En Datos, seleccione el botón Texto a columnas. En la primera pantalla, deje el botón de opción " delimitado " y haga clic en Siguiente . Desmarque cualquiera de los cuadros delimitadores (cualquier cuadro en blanco ; sin marcas de verificación) y haga clic en Siguiente . En el formato de datos de columna, elija Fecha y seleccione MDY en el cuadro combinado adyacente y haga clic en Finalizar . Ahora tiene valores de fecha (es decir, Excel ha reconocido sus valores como
Date
tipo de datos), pero es probable que el formato siga siendo la fecha local, no lamm/dd/yyyy
que desea.2) Para que el formato de fecha de EE. UU. Deseado se muestre correctamente, primero debe seleccionar la columna (si no está seleccionada) y luego en Formato de celda - Número, elija Fecha Y seleccione Configuración regional: Inglés (EE . UU . ) . Esto le dará formato como "
m/d/yy
". Luego puede seleccionar Personalizado y allí puede escribir "mm/dd/yyyy
" o elegir esto de la lista de cadenas personalizadas.Alternativa : use LibreOffice Calc. Al pegar los datos de la publicación de Patrick, elija Pegado especial (
Ctrl+Shift+V
) y elija Texto sin formato. Esto abrirá el cuadro de diálogo "Importar texto". El conjunto de caracteres sigue siendo Unicode, pero para el idioma elija inglés (EE. UU.) También debe marcar la casilla "Detectar números especiales". Sus fechas aparecen inmediatamente en el formato predeterminado de EE. UU. Y se pueden ordenar por fecha. Si desea el formato especial de EE. UU. MM / DD / AAAA, debe especificar esto una vez a través de "formatear celdas", ya sea antes o después de pegar.Se podría decir: Excel debería haber reconocido las fechas tan pronto como lo dije a través de "Formato de celda" y no podría estar más de acuerdo . Desafortunadamente, es solo a través del paso 1 desde arriba que he podido hacer que Excel reconozca estas cadenas de texto como fechas. Obviamente, si haces esto mucho, es un dolor en el cuello y podrías armar una rutina visual básica que lo haría por ti con solo presionar un botón.
Datos | Texto a columnas
Actualización sobre el apóstrofe principal después de pegar: Puede ver en la barra de fórmulas que en la celda donde no se reconoce la fecha hay un apóstrofe principal. Eso significa que en la celda formateada como un número (o fecha) hay una cadena de texto. Se podría decir: el apóstrofe principal evita que la hoja de cálculo reconozca el número. Debe saber buscar en la barra de fórmulas para esto, porque la hoja de cálculo simplemente muestra lo que parece un número alineado a la izquierda. Para resolver este problema, seleccione la columna que desea corregir, elija en el menú
Data | Text to Columns
y haga clic en Aceptar A veces podrá especificar el tipo de datos, pero si previamente ha configurado el formato de la columna para que sea su tipo de datos particular, no lo necesitará. El comando realmente está destinado a dividir una columna de texto en dos o más usando un delimitador, pero también funciona de maravilla para este problema. Lo he probado en Libreoffice , pero también hay el mismo elemento de menú en Excel .fuente
Seleccione toda la columna y vaya a Localizar y reemplazar y simplemente reemplace
"/"
con/
.fuente
Tuve exactamente el mismo problema con las fechas en Excel. El formato coincidía con los requisitos para una fecha en Excel, sin embargo, sin editar cada celda, no reconocería la fecha, y cuando se trata de miles de filas, no es práctico editar manualmente cada celda. La solución es ejecutar una búsqueda y reemplazo en la fila de fechas donde reemplacé el guión con un guión. Excel se ejecuta a través de la columna reemplazando like por like, pero el factor resultante es que ahora reconoce las fechas. ¡FIJO!
fuente
Estaba lidiando con un problema similar con miles de filas extraídas de una base de datos SAP y, inexplicablemente, dos formatos de fecha diferentes en la misma columna de fecha (la mayoría es nuestro estándar "AAAA-MM-DD" pero aproximadamente el 10% es "MM- DD-AAA "). Editar manualmente 650 filas una vez al mes no era una opción.
Ninguna (cero ... 0 ... nula) de las opciones anteriores funcionó. Sí, los probé todos. Copiar a un archivo de texto o exportar explícitamente a txt todavía, de alguna manera, no tuvo ningún efecto en el formato (o falta de él) de las fechas del 10% que simplemente se quedaron en su esquina negándose a comportarse.
La única forma en que pude solucionarlo fue insertar una columna en blanco a la derecha de la columna de fecha de mal comportamiento y usar la siguiente fórmula bastante simplista:
(suponiendo que sus datos de mal comportamiento están en
Column D
)=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))
Luego podría copiar los resultados en mi nueva columna calculada sobre las fechas de mal comportamiento pegando "Valores" solo después de lo cual podría eliminar mi columna calculada.
fuente
Esto puede no ser relevante para el interrogador original, pero puede ayudar a alguien más que no puede ordenar una columna de fechas.
Descubrí que Excel no reconocería una columna de fechas que eran todas anteriores a 1900, insistiendo en que eran una columna de texto (ya que 1/1/1900 tiene el equivalente numérico 1, y aparentemente no se permiten números negativos). Así que hice un reemplazo general de todas mis fechas (que fueron en el siglo XIX) para ponerlas en el siglo XX, por ejemplo, 180 -> 190, 181 -> 191, etc. El proceso de clasificación funcionó bien. Finalmente hice un reemplazo a la inversa, por ejemplo 190 -> 180.
Espero que esto ayude a algún otro historiador por ahí.
fuente
Parece que Excel no reconoce sus fechas como fechas, las reconoce como texto, por lo tanto, obtiene las opciones Ordenar de la A a la Z. Si lo hace correctamente, debería obtener algo como esto:
Por lo tanto, es importante asegurarse de que Excel reconozca la fecha. La forma más sencilla de hacerlo es utilizar el acceso directo CTRL+SHIFT+3.
Esto es lo que le hice a tus datos. Simplemente lo copié de tu publicación anterior y lo pegué en Excel. Luego apliqué el acceso directo anterior y obtuve la opción de clasificación requerida. Mira la imagen.
fuente
04/08/2012
,04/09/2009
y04/01/2010
como 4-Ago-2012 , 4-sep-2009 y 4-ene-2010, respectivamente, y se trata04/21/2011
como una cadena de texto (porque no hay 21 meses). Dado que algunos de los valores son texto (y algunos de los valores, presumiblemente, en realidad se han malinterpretado), el formateo (como por el método abreviado de teclado Ctrl + Shift + 3) no servirá de nada.Sospecho que el problema es que Excel no puede entender el formato ... Aunque selecciona el formato de Fecha, permanece como Texto.
Puede probar esto fácilmente: cuando intente actualizar el formato de fechas, seleccione la columna y haga clic con el botón derecho en ella y elija el formato de las celdas (como ya lo hace), pero elija la opción 2001-03-14 (casi al final de la lista). Luego revise el formato de sus celdas.
Sospecharé que solo algunos de los formatos de fecha se actualizan correctamente, lo que indica que Excel todavía lo trata como una cadena, no como una fecha (tenga en cuenta los diferentes formatos en la siguiente captura de pantalla).
Hay soluciones alternativas para esto, pero ninguna de ellas se automatizará simplemente porque está exportando cada vez. Sugeriría usar VBa, donde simplemente puede ejecutar una macro que convierte el formato de fecha de EE. UU. A Reino Unido, pero esto significaría copiar y pegar el VBa en su hoja cada vez.
Alternativamente, crea un Excel que lee las hojas de Excel exportadas recién creadas (del intercambio) y luego ejecuta el VBa para actualizar el formato de fecha por usted. Asumiré que el archivo Excel de Exchange exportado siempre tendrá el mismo nombre de archivo / directorio y proporcionaré un ejemplo de trabajo:
Entonces, cree una nueva hoja de Excel, llamada ImportedData.xlsm (Excel habilitado). ¡Este es el archivo en el que importaremos el archivo exportado de Exchange Excel!
Agregue este VBa al archivo ImportedData.xlsm
Lo que también hice fue actualizar el formato de fecha a aaaa-mm-dd porque de esta manera, incluso si Excel le da el filtro de clasificación AZ en lugar de los valores más nuevos, ¡todavía funciona!
Estoy seguro de que el código anterior tiene errores, pero obviamente no tengo idea de qué tipo de datos tiene, pero lo probé con una sola columna de fechas (como usted tiene) y ¡funciona bien para mí!
¿Cómo agrego VBA en MS Office?
fuente
https://support.office.com/en-us/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680
Solución simple aquí: cree una nueva columna use = datevalue (cell) fórmula y luego copie la fórmula en sus otras filas, unos segundos para corregir
fuente
¡Me lo imaginé!
Hay un espacio al principio y al final de la fecha.
fuente
Si Excel se niega obstinadamente a reconocer su columna como fecha, reemplácela por otra:
Format
date
Paste Special
, y solo peguevalues
fuente
Simplemente copié el número 1 (uno) y lo multipliqué en la columna de fecha (datos) usando la función PEGAR ESPECIAL. Luego cambia a Formateo general, es decir 42102. Luego, aplique Aplicar fecha en el formateo y ahora lo reconoce como una fecha.
Espero que esto ayude
fuente
Todas las soluciones anteriores, incluidas r0berts, no tuvieron éxito, pero encontraron esta solución extraña que resultó ser la solución más rápida.
Estaba tratando de ordenar "fechas" en una hoja de cálculo descargada de transacciones de cuenta.
Esto se había descargado a través del navegador CHROME. Ninguna cantidad de manipulación de las "fechas" haría que se reconocieran como antiguas a nuevas ordenables.
Pero, luego descargué a través del navegador INTERNET EXPLORER, increíble, pude ordenar al instante sin tocar una columna.
No puedo explicar por qué diferentes navegadores afectan el formato de los datos, excepto que claramente lo hizo y fue una solución muy rápida.
fuente
Mi solución en el Reino Unido: tuve mis citas con puntos como estos:
Resolví esto con lo siguiente:
14-03-12
(esencial para que el mío tenga el guión central)Al ordenar la columna, se ordenan todas las fechas del año.
fuente
Intenté varias sugerencias, pero encontré que la solución más fácil para mí fue la siguiente ...
Consulte las imágenes 1 y 2 para ver el ejemplo ... (nota: algunos campos se ocultaron intencionalmente ya que no contribuyen al ejemplo). Espero que esto ayude...
Campo C: un formato mixto que me volvió completamente loco. Así es como los datos provenían directamente de la base de datos y no tenían espacios adicionales ni caracteres locos. Cuando se muestra como un texto, por ejemplo, el 01/01/2016 se muestra como un valor de tipo '42504', entremezclado con el 15/04/2006 que se muestra como es.
Campo F: donde obtuve la longitud del campo C (la fórmula LEN sería una longitud de 5 de 10 dependiendo del formato de fecha). El campo es Formato general para simplificar.
Campo G: obtención del componente de mes de la fecha mixta: según el resultado de longitud en el campo F (5 o 10), obtengo el mes a partir del valor de la fecha en el campo C u obtengo los caracteres de mes en la cadena.
Campo H: obtención del componente de día de la fecha mixta: en función del resultado de longitud en el campo F (5 o 10), obtengo el día del valor de fecha en el campo C u obtengo los caracteres de día en la cadena.
También puedo hacer esto para el año, luego crear una fecha a partir de los tres componentes que sea consistente. De lo contrario, puedo usar los valores individuales de día, mes y año en mi análisis.
Imagen 1: hoja de cálculo básica que muestra valores y nombres de campo
Imagen 2: hoja de cálculo que muestra las fórmulas que coinciden con la explicación anterior
Espero que esto ayude.
fuente
04/08
son ambiguas.04/08
se interpretará como el 8 de abril en algunos lugares (como los Estados Unidos) y el 4 de agosto en otros (como Inglaterra). Pero estos son ambiguos precisamente porque el número de mes y el día del mes son diferentes. … (Continúa)01/01
en su respuesta? (3) En realidad, no estoy seguro de que comprenda el problema, o de que su respuesta realmente funcione, ya que su hoja tiene filas donde el mes # es 15; eso parece ser un error obvio. Y, dado que04/15
no es ambiguo, debe significar el 15 de abril, no tiene sentido que su método se analice01/11
como el primer día del undécimo mes. … (Continúa)5/8
,5/08
,5/28
,05/8
, y11/8
. También, hecho curioso, su respuesta fallará en las fechas ≤ 17 de mayo de 1927 y ≥ 17 de octubre de 2173. No importa el problema Y10K; ¡podemos comenzar a tener problemas tan pronto como dentro de 154 años! (5) Usted dice: “También puedo hacer esto para el año, luego crear una fecha a partir de los tres componentes que sea consistente”. Entonces, ¿por qué no lo hace y lo muestra ? … (Continúa)01/11/2016
o11/01/2016
?) Y, si va a usar sus propios datos, hubiera sido bueno si hubiera incluido fechas del mismo mes que demuestren (por ejemplo) cómo1/11
y cómo1/21
se manejan diferentemente. ¿Y por qué tener datos duplicados? Has desperdiciado 19 filas usando los mismos cuatro valores varias veces, repartidas en 23 filas.COMPARTIENDO UNA PEQUEÑA SOLDADURA PERO MUCHO MÁS FÁCIL PARA SUJETAR ..... No es necesario ejecutar macros o cosas geek ... simples fórmulas y edición de MS Excel.
Instantánea de fechas mixtas de Excel:
#VALUE
resultado. - Finalmente, a partir de la cadena que creamos, los convertimos a fechas por la fórmula DATE.#VALUE
fueron seleccionados como está por IFERROR agregado a la fórmula FECHA y la columna fue formateada según se requiera (aquí, dd / mmm / aa)* CONSULTE LA INSTANTÁNEA DE LA HOJA DE EXCEL ARRIBA ARRIBA (= instantánea de fechas mixtas de Excel) *
fuente
V
,W
yX
cuando deberían estar refiriéndose a las columnasB
,C
yD
. … (Continúa)5/8/2014
o5/08/2014
). Y, si va a utilizar sus propios datos, hubiera sido bueno si hubiera incluido fechas del mismo mes, para demostrar (por ejemplo) cómo5/8
y5/28
se manejan de manera diferente. ¿Y por qué tener datos duplicados? Has desperdiciado seis filas usando los mismos valores más de una vez.Esto sucede todo el tiempo cuando se intercambian datos de fechas entre configuraciones regionales en Excel. Si tiene control sobre el programa VBA que exporta los datos, sugiero exportar el número que representa la fecha en lugar de la fecha en sí. El número se correlaciona de manera única con una sola fecha, independientemente del formato y la configuración regional. Por ejemplo, en lugar del archivo CSV que muestra 24/09/2010, mostrará 40445.
En el ciclo de exportación cuando mantiene cada celda, si es una fecha, convierta a número usando CLng (myDateValue). Este es un ejemplo de mi ciclo que se ejecuta a través de todas las filas de una tabla y se exporta a CSV (tenga en cuenta que también reemplazo comas en cadenas con una etiqueta que elimino al importar, pero es posible que no necesite esto):
fuente
No tuve suerte con todas las sugerencias anteriores: se me ocurrió una solución muy simple que funciona a las mil maravillas. Pegue los datos en Hojas de cálculo de Google, resalte la columna de fecha, haga clic en formato, luego en número y vuelva a numerar para cambiarlo a formato de número. Luego copio y pego los datos en la hoja de cálculo de Excel, hago clic en las fechas y luego formateo las celdas hasta la fecha. Muy rápido. Espero que esto ayude.
fuente
Este problema me estaba volviendo loco, luego me topé con una solución fácil. Al menos funcionó para mis datos. Es fácil de hacer y recordar. Pero no sé por qué esto funciona, pero cambiar los tipos como se indicó anteriormente no. 1. Seleccione la (s) columna (s) con las fechas 2. Busque un año en sus fechas, por ejemplo 2015. Seleccione Reemplazar todo por el mismo año, 2015. 3. Repita para cada año. Esto cambia los tipos a fechas reales, año por año.
Esto sigue siendo engorroso si tiene muchos años en sus datos. Más rápido es buscar y reemplazar 201 con 201 (para reemplazar 2010 hasta 2019); reemplazar 200 con 200 (para reemplazar 2000 hasta 2009); Etcétera.
fuente
Seleccione fechas y ejecute este código sobre él.
fuente
Yo uso un mac
Vaya a las preferencias de Excel> Editar> Opciones de fecha> Convertir automáticamente el sistema de fechas
También,
Vaya a Tablas y filtros> Agrupar fechas cuando filtre.
El problema probablemente comenzó cuando recibió un archivo con un sistema de fechas diferente, y eso arruinó su función de fecha de Excel
fuente
Por lo general, solo creo una columna adicional para fines de clasificación o totalización, así que úsala
year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1)
.Eso proporcionará un
yyyymmdd
resultado que se puede ordenar. El uso delen(a1)
just permite agregar un cero adicional para los meses 1-9.fuente