Fonction de formatage de cellule ?

Signaler
-
 Xisandro -
Bonjour,

J'ai deux problématiques que je souhaiterai vous soumettre :

La première est pour extraire du texte d'une cellule pour le mettre dans une autre :

j'ai la cellule A1 avec "Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz" et je veux dans la cellule A2 uniquement "i3-2"

j'ai réussi avec la formule =STXT([@Processeur];19;4)

Seulement voilà, d'autres cellules contiennent aussi :

- Intel(R) Pentium(R) CPU G3220 @ 3.00GHz (dont je voudrai qu'elle apparaisse en "CP")
- Intel(R) Xeon(R) CPU W3550 @ 3.07GHz (dont je voudrai qu'elle apparaisse en "Xéon")
- Intel(R) Core(TM) M-5Y71 CPU @ 1.20GHz (dont je voudrai qu'elle apparaisse en "-")

mais je n'arrive pas à composer ma formule pour qu'elle prenne en compte les différentes compositions de texte.

La deuxième lui ressemble :

j'ai des modèles de machines :

ThinkPad E550 20DF00CQFR
Thinkpad E550 20DF-00CUFR
Thinkpad Helix 20CHS10S0P
Thinkpad Helix 20CHS10S0P
Thinkpad Helix 20CHS10S0P
Thinkpad Helix 3702-6F3
ProBook 6570b
ProDesk 400 G2 MT
Lifebook E751
Lifebook S751
OptiPlex 3010

dont la seule chose qui m'intéresse est le début car les modèles doivent être identiques pour que je puisse les prendre en compte dans un tableau croisé dynamique :

ThinkPad E550
Thinkpad E550
Thinkpad Helix
Thinkpad Helix
Thinkpad Helix
Thinkpad Helix
ProBook 6570b
ProDesk 400 G2 MT
Lifebook E751
Lifebook S751
OptiPlex 3010

Savez-vous s'il est possible de réaliser un "formatage" avec une formule ?

Merci d'avance ! :D

Configuration: Windows / Opera 70.0.3728.189

9 réponses

Messages postés
2169
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2020
293
Bonjour,

Et le jour ou vous voudrez ajouter de nouveaux élèments, ça ne marchera plus.
Le plus simple est de créer les listes des processeurs et des machines sur une autre feuille avec dans la colonne à côté le texte à extraire, puis avec une recherchev etc...

Exemple:
https://mon-partage.fr/f/z74R2a3w/

formule pour les processeurs: =RECHERCHEV($A2;Processeurs;2;0)
formule pour les machines:=RECHERCHEV($A9;Machines;2;0)


Cdlt
Merci pour votre réponse Frenchie83 !

J'espérais ne pas devoir en arriver là car cela me ferait trop de références à noter ... J'ai déjà des recherchev pour d'autres colonnes et cela m'a pris un temps fou !

Je vais attendre d'éventuelles réponses avec d'autres idées avant de devoir me résoudre à l'horrible réalité :D
Messages postés
52493
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 octobre 2020
14 362
Bonsoir.

Désolé, mais ta demande est incohérente :
- Intel(R) Core(TM)
i3-2
120 CPU @ 3.30GHz" et je veux en A2 uniquement "i3-2"
- Intel(R) Pentium(R)
CP
U G3220 @ 3.00GHz (dont je voudrai "CP")
- Intel(R)
Xeon(
R) CPU W3550 @ 3.07GHz (dont je voudrai "Xéon")
- Intel(R) Core(TM) M
-
5Y71 CPU @ 1.20GHz (dont je voudrai "-")

Ce serait plus logique de souhaiter obtenir i3-2120 ; CPU ; CPU ; M-5Y71 ...
Messages postés
52493
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 octobre 2020
14 362
Pour la seconde problématique ce serait possible sauf pour la huitième donnée
" ProDesk 400 G2 MT " qui donnerait " ProDesk 400 ".
Je vais expliquer plus en détails afin de retirer un maximum d'incohérences :

J'ai un fichier excel qui est un export d'une base de données contenant les configurations d'ordinateurs ; elle est brute et difficilement exploitable en l'état. En plus, cette source est mise à jour régulièrement et tout tri/formatage pour interpréter les données devient obsolète au bout de 2 jours. Je souhaite donc réaliser un fichier de mise en forme/formatage de ces données pour qu'elles soient lisibles et exploitables en un minimum d'efforts.

C'est là que la colonne des processeurs est plus complexe car il s'agit de récupérer les informations telles que suit :

i3/i5/i7 + premier chiffre après le tiret correspond au processeur et à sa génération. rien d'autre n'est utile.
Xéon/Pentium/Céléron/AMD idem, à part le type de processeur rien d'autre n'est utile.

Pour les premiers processeurs, le texte est toujours le même :
Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz : il est donc facile à tronquer

les Xéon/Céléron/Pentium pourrait se tronquer au même endroit aussi mais comment les différencier des premiers ?
Intel(R) Xeon(R) CPU W3550 @ 3.07GHz
Intel(R) Pentium(R) CPU G3220 @ 3.00GHz

Même problème avec les AMD
AMD A4 PRO-7300B


Si dans un premier temps je souhaitais obtenir "CP" comme résultat ce n'était pas pour raccourcir CPU mais pour "CéléronPentium" qui sont plus ou moins équivalents.

les "Intel(R) Core(TM) M-5Y71 CPU @ 1.20GHz" sont des casses pieds qui n'apparaissent pas souvent et dont je peux calculer les équivalences manuellement d'où le "-"

Pour finir, je n'y connais rien en VBA et à terme il me faudrait voir si tout cela peut s'exporter dans un google sheet ... Si je trouve déjà la solution pour les processeurs ce sera déjà bien ! :D
Messages postés
52493
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 octobre 2020
14 362
Bonjour.

Et quelle abréviation veux-tu pour AMD A4 PRO-7300B ?
Bonjour !

Juste AMD.

Pour les xéon, céléron, pentium et AMD, ces machines ont été triées au préalable et seul le nom du processeur est important, peu importe la génération.

Suis-je en droit d'espérer une solution ? :D
Messages postés
52493
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 octobre 2020
14 362
Le mieux que je puisse te proposer, c'est
=STXT(A2;TROUVE(" ";A2)+1;TROUVE(" ";A2;TROUVE(" ";A2)+1)-TROUVE(" ";A2))
qui affiche PENTIUM(R), Xeon(R) et A4
Bonjour !

J'ai trouvé ma réponse sous google sheet mais pas sous excel ...

J'ai utilisé la fonction SPLIT dans ma page de données pour séparer le texte en supprimant certains éléments :

=split(BDD!H7;"`=[]\;',./!@#$%^&*()")

Intel(R) Celeron(R) 3205U @ 1.50GHz (en une seule cellule)
est devenu
Intel R Celeron R 3205U 1 50GHz (tous les espaces marquent les différentes cellules)


Puis j'ai utilisé la formule SI avec imbrications pour trier ...

=SI('données'!J6=" Pentium";"Pentium";
SI('données'!J6=" Celeron";"Celeron";
SI('données'!J6=" Xeon";"Xeon";
SI('données'!H6="AMD";"AMD";STXT('données'!L6;1;5)))))

(avec des sauts de lignes pour que cela soit plus lisible)

merci pour vos retours en tout cas !