2017-09-14 17 views
2

J'ai une semaine de données de la plage comme ci-dessous qui a des Date de début de la semaine et Date de fin en mm/jj/aa-mm/jj/aa format, je suis en train de trier la Colonne mais elle n'est pas triée selon les besoins, Aidez moi s'il vous plait.Excel Semaine Colonne Trier par ordre croissant

Week 
01/02/17-01/08/17 
01/02/17-01/08/17 
01/02/17-01/08/17 
02/01/16-02/07/16 
02/01/16-02/07/16 
02/13/17-02/19/17 
02/13/17-02/19/17 
03/07/16-03/13/16 
03/07/16-03/13/16 
03/20/17-03/26/17 
03/20/17-03/26/17 
05/02/16-05/08/16 
05/02/16-05/08/16 
08/08/16-08/14/16 
08/08/16-08/14/16 
09/05/16-09/11/16 
09/05/16-09/11/16 
10/31/16-11/06/16 
10/31/16-11/06/16 
+0

Aussi, pouvez-vous nous dire ce que vous avez essayé jusqu'à présent? cela aidera à éliminer ce qu'il ne faut pas essayer – Zac

Répondre

1

Veuillez utiliser cette formule en regard de la colonne de la semaine. En supposant que vos valeurs de date commencent dans A2, entrez cette formule =DATEVALUE(LEFT(A2,8)) dans B2 et trier plus petit à plus grand par la colonne B. Vos dates de départ devraient être triées correctement maintenant.

1

Excel lit vos données de plage de semaine en tant que chaîne (texte). Cela signifie que lors du tri, il va lire le premier caractère et ensuite trier en fonction de celui-ci. C'est pourquoi vos données sont triées de 1 à 10 (les mois correspondants depuis vos dates sont mm/dd/yy)

Comparez cela à une colonne de date appropriée, dans laquelle les dates sont stockées sous forme de nombres. Ensuite, Excel triera selon le calendrier du premier au dernier ou vice versa. Ce que vous devez faire est de séparer les dates de début et de fin en utilisant une manipulation de chaînes (une combinaison de date et left et mid). Puis trier les dates résultantes.

Modifier Créer une nouvelle colonne avec la date de début de chaque semaine, en utilisant =DATE(2000+MID(A2,7,2),LEFT(A2,2),MID(A2,4,2)) (en supposant que votre tête de données est en A1 et que le premier intervalle commence dans la cellule A2).

La fonction Date vous permet de créer une date, en indiquant l'année, le mois et le jour. Vous fournissez ces trois en utilisant Mid et Left.

Mid trouve des caractères spécifiques dans une chaîne en fonction d'une position de départ donnée et de la longueur requise.

Left vous donnera les caractères les plus à gauche d'une chaîne.

+0

Merci pour votre réponse. Mais pouvez-vous m'expliquer en détail? –

+0

Fait, lorsque vous travaillez avec des dates. Je trouve toutes les fonctions de chaînes super utiles car il est très rare d'avoir les mêmes formats. La bonne chose ici est qu'au moins vos données ont le même format pour toutes les dates. –

1

Veuillez utiliser le code suivant Aspose.Cells code et il devrait résoudre votre problème. Vous pouvez modifier le code plus en fonction de vos besoins.

Veuillez vérifier la capture d'écran de l'exemple de sortie du code pour référence. La capture d'écran met également en évidence la formule utilisée dans le code.

enter image description here

C#

Workbook wb = new Workbook("AfterSorting.ods"); 

Cells cells = wb.Worksheets[0].Cells; 

int maxRow = 19; 

for (int i = 1; i <= maxRow; i++) 
{ 
    cells[i, 1].Formula = "=DATEVALUE(LEFT(A" + (i + 1) + ",8))"; 
} 

wb.CalculateFormula(); 

DataSorter sorter = wb.DataSorter; 
sorter.Key1 = 1; 
sorter.Order1 = SortOrder.Descending; 

sorter.Sort(cells, 1, 0, maxRow, 1); 

wb.Save("ooo.xlsx"); 

Note: Je travaille comme évangéliste Developer à Aspose