2 votes

Fonction récursive d'Excel pour créer une chaîne de caractères concaténée

Je suis novice en matière d'Excel, mais je me demandais s'il était possible de réaliser ce qui suit avec une formule Excel.

Données :

ID  ServiceEntryID  PartID  Comment  ServiceTypeIDs  PartDescription
1        2           54      xyz      1               hellothere
2        2           22                               howdy
3        33          54      uhu      1               xyz

Format de chaîne souhaité

PartID~PartDescription~ServiceTypeIDs~Commentaire

Valeur de chaîne souhaitée

ainsi pour la colonne ID de l'entrée de service avec la valeur 2 :

54 ~ hellothere ~ 1 ~ xyz | 22 ~ howdy ~ null ~ |

pour la colonne ID de l'entrée de service avec la valeur 33 :

33 ~ xyz ~ 1 ~ uhu

0voto

pnuts Points 5964

Oui, c'est possible (mais je regrette, ce n'est pas le meilleur endroit pour commencer à apprendre Excel !)

  1. Travaillez sur une copie.
  2. Trier par ordre de ServiceID.
  3. Ajoutez une colonne (disons G par exemple, étiqueté "String") qui concatène comme il se doit pour chaque ligne indépendamment.
  4. Sélectionnez le tableau et le sous-total :
  5. À chaque changement de ServiceEntryID, utiliser la fonction Count. Ajouter le sous-total à : Chaîne.
  6. Entrez dans H2 =IF(ISNUMBER(G2),"",H1&G2) et copier vers le bas aussi loin que nécessaire.
  7. Sélectionnez la feuille entière, Copier, Collage spécial, Valeurs.
  8. Sous-total Retirez tout.
  9. Insertion (shift down) H1 .
  10. Filtre sur ServiceEntryID, ne contient pas : c supprimer les lignes sélectionnées.
  11. Dans la colonne avec ServiceEntryID, remplacez ' Count' par rien.
  12. Supprimez les "Grand" et les colonnes comportant uniquement des étiquettes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X