Question

J'ai une feuille Excel
alt text

L’exigence est de faire la somme des chiffres des cellules de la colonne "C" et de mettre la valeur dans la cellule correspondante de la colonne "B" (dans mon exemple, 0,25 + 1 + 0,25 + 1 = 2,5).

Les valeurs de la colonne 'C' peuvent changer. Il est impératif de mettre à jour la valeur dans "B" dès que la cellule de la colonne "C" change.

J'ai demandé au créateur de modifier le texte et les nombres en deux colonnes différentes, mais cela n’est pas acceptable à cause du modèle standard.

Était-ce utile?

La solution

Ceci peut être réalisé, sans modifier le texte de la cellule, en utilisant une macro. Je dois admettre que la mise en œuvre sera un peu retardée, car il faut faire quelques choses.

1 - Tokenize la totalité du contenu de la cellule et stocker les jetons dans un tableau de chaînes.

Il y a déjà un problème. Le texte situé à l'intérieur de la cellule est extrêmement incohérent. Vous avez -250 ms, - 250 ms, - 1sec, - 1 sec. Pour cette raison, vous devrez vérifier chaque instance. Par conséquent, vous ne pouvez pas simplement vérifier si la valeur est un nombre, vous devez vérifier toutes les permutations que les membres de votre équipe vous ont fournies de manière pratique.

La meilleure façon de le faire serait de vérifier les expressions régulières. Par conséquent, le n ° 2 devrait être:

2 - Vérifiez chaque valeur pour voir si elle correspond à l'une des 4 expressions régulières.

3 - En fonction de la regex avec laquelle elle correspond, extrayez la valeur numérique.

a) S'il s'agit simplement d'une valeur (c'est-à-dire - 250), vérifiez si ms ou sec produit la valeur. IF ms, divisez le nombre par 1000. Si vous le souhaitez, laissez le nombre tel quel. Ajouter le nombre au total.
b) Si un numéro est précédé d'un tiret (-), supprimez-le et répétez l'étape a)

c) Si un numéro est suivi de lettres, enlevez les lettres et répétez l'étape a)
d) Si un numéro est suivi d'un point, ne faites rien. Ceci est un point de balle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top