Concaténer dans une sommeprod

MarieSoleil

XLDnaute Nouveau
Bonjour,

Mon problème est le suivant :
J'ai des données saisies dans un premier fichier. Le résultat doit apparaître dans un second fichier.
Ma fonction sommeprod va chercher des conditions dans deux colonnes différentes (du premier tableau).
Si ces conditions sont réunies, alors, je dois concaténer le texte correspondant se trouvant dans une troisième colonne.
Comment feriez-vous ?
J'ai essayé la formule suivante :
=SOMMEPROD(('activité personnels_juin 2015.xlsx'!Nom="Dupont")*('activité personnels_juin 2015.xlsx'!mois>=42005)*('activité personnels_juin 2015.xlsx'!mois<42036)*(CONCATENER('activité personnels_juin 2015.xlsx'!Objet)))

... mais ça ne marche pas :(

(sachant qu'en plus, il faut insérer un espace entre chaque cellule concaténée, en plus)

Au secours
 

djidji59430

XLDnaute Barbatruc
Re : Concaténer dans une sommeprod

Bonjour,
Il est d'usage , afin de faciliter la compréhension du problème, d'envoyer un fichier test (ou le fichier).
Avec les réponses espérées et les explications
Voir "Aller en mode avancé", sous la fenêtre de reponse.

Cdrt
 

MarieSoleil

XLDnaute Nouveau
Re : Concaténer du texte dans une sommeprod

Toutes mes excuses, DjiDji, je l'ignorais.
Mes deux fichiers sont joints
Bien cordialement,
 

Pièces jointes

  • Activite_personnels_juin2015.xlsx
    13.8 KB · Affichages: 29
  • TimeSheetModel.xlsx
    15.5 KB · Affichages: 28

djidji59430

XLDnaute Barbatruc
Re : Concaténer dans une sommeprod

Bonjour,
Si je te demande un fichier avec les resultats remplis a la main que tu attends, c'est que tes explications ne me paraissent pas claires !

Surtout l'usage que tu veux faire du concatener(). Maintenant, si tu juges que tu as déjà donné suffisamment d'explications .....
 

Lison Lisette

XLDnaute Nouveau
Re : Concaténer dans une sommeprod

Moi j'ai une demande un peu plus claire, dans le fichier ci-joint.

Au lieu d'utiliser le somme prod pour faire des sommes matricielles, j'aimerais l'utiliser pour faire des "concaténations matricielles"...

Mais je n'y arrive ni avec "CONCATENER", ni avec "INDIRECT", ni avec "INDEX".... :confused:

Exemple ci-joint.

MERCI++ d'avance pour votre aide.
LL
 

Pièces jointes

  • SOMMEPROD+CONCATENATION.xlsx
    12.9 KB · Affichages: 26
  • SOMMEPROD+CONCATENATION.xlsx
    12.9 KB · Affichages: 42
  • SOMMEPROD+CONCATENATION.xlsx
    12.9 KB · Affichages: 41

Lison Lisette

XLDnaute Nouveau
Re : Concaténer dans une sommeprod

Et bien je ne peux pas "concaténer avant" car je ne sais pas quoi concaténer.
En l’occurrence cela va dépendre des endroits ou je met mes croix.

Mon exemple :


Machin Truc Chose Muche
=sommeprod... o x o x

=sommeprod... est la formule que j'essaye d'appliquer sans succès dans mon cas.
(elle fonctionne très bien avec les nombres, mais pas vraiment avec les "textes". Je cherche un moyen de l'adapter.)

"Truc Muche" est la chaîne de caractères que je souhaite obtenir dans cet exemple.
Pour les mots qui ont une "croix" dans la même colonne, à la ligne d'en dessous...
 

Lison Lisette

XLDnaute Nouveau
Re : Concaténer dans une sommeprod

En fait je suis capable de le faire avec des "SI" imbriqués, mais vu que j'ai 32 colonnes (trop de "si" imbriqués donc...)

si "x" en B2, "o" en C2 et "x" en D2, alors concaténer seulement B1&D1 ...
si "o" en B2, "x" en C2 et "o" en D2, alors concaténer seulement C1 ...
 

CISCO

XLDnaute Barbatruc
Re : Concaténer dans une sommeprod

Bonjour

Cf. en A16 sur la pièce jointe. A toi de rallonger la formule pour que cela fonctionne avec 32 colonnes.

@ plmus
 

Pièces jointes

  • SOMMEPROD+CONCATENATION.xlsx
    13.3 KB · Affichages: 35
  • SOMMEPROD+CONCATENATION.xlsx
    13.3 KB · Affichages: 48
  • SOMMEPROD+CONCATENATION.xlsx
    13.3 KB · Affichages: 59

ODVJ

XLDnaute Impliqué
Re : Concaténer dans une sommeprod

Bonjour à tous,

Tu peux utiliser la fonction MCONCAT() de l'addin Morefunc de Laurent Longre :
Code:
=MCONCAT(SI(B16:E16="x",B$14:E$14,"")," ")
à valider par CTRL+MAJ+ENTER
Morefunc peux s'installer si tu es en excel 32 bits

Si ça n'est pas le cas, tu peux utiliser des si concaténés et non imbriqués :
Code:
=SUPPRESPACE(SI(B16="x",B$14,"")&" "&SI(C16="x",C$14,"")&" "&SI(D16="x",D$14,"")&" "&SI(E16="x",E$14,"")&" "&SI(F16="x",F$14,"")&" "&SI(G16="x",G$14,"")&" "&SI(H16="x",H$14,"")&" "&SI(I16="x",I$14,"")&" "&SI(J16="x",J$14,"")&" "&SI(K16="x",K$14,"")&" "&SI(L16="x",L$14,"")..............)
Les points de suspension sont là pour indiquer qu'il faut compléter la formule

Enfin, tu peux créer une macro inspirée de Jacques Boisgontier :
Code:
Function concat_tablo(myRange, delim As String)
    concat_tablo = Join(myRange, delim)
End Function

avec l'appel :
Code:
=SUPPRESPACE(concat_tablo(SI(B16:E16="x",$B$14:$E$14,"")," "))
à valider par CTRL+MAJ+ENTER

cordialement
 

Lison Lisette

XLDnaute Nouveau
Re : Concaténer dans une sommeprod

Exact !

Merci CISCO et ODVJ, deux solutions toutes simples, je m'en veux presque de ne pas y avoir pensé moi même!
J'ai tout de suite éliminé la solution des SI en pensant à la limitation des "si" imbriqués... il suffisait de les "désimbriquer".

On peut clôturer la discussion. (je ne sais pas si je peux le faire à la place de MarieSoleil...

Encore merci !
LL

PS : Petite astuce pour compléter, pour une présentation plus lisible de la concaténation :

"Pour concaténer le contenu de deux cellules dans une troisième AVEC RENVOI DU TEXTE SUR PLUSIEURS LIGNES, il vous faut auparavant mettre le format
de la cellule en renvoi à la ligne automatique par l'intermédiaire de la
commande Cellule/Alignement du menu Format (pour Excel 5.0 et 7.0) et
Format Position (pour Excel 3.0 et 4.0), puis taper votre formule.


EXEMPLE :

- Sélectionnez la cellule A3
- Entrez la formule correspondante suivante
=A1&CAR(10)&A2 (pour Excel pour Windows ou Windows NT)
=A1&CAR(13)&A2 (pour Excel pour Macintosh)
- Choisissez la commande Cellule du menu Format, et dans l'onglet
Alignement, cochez Renvoi à la ligne automatique (pour Excel 5.0 et 7.0)
et Format Position (pour Excel 3.0 et 4.0)


REMARQUES :

La formule suivante peut également être entrée.

=A1&""&A2

Prenez soin d'entrer entre les guillemets, la combinaison de touches
correspondante à la version d'Excel :

- avec Excel pour Windows ou Windows NT, appuyez simultanément sur les 2
touches ALT+ENTREE.

- avec Excel pour Macintosh, appuyez simultanément sur les 3 touches
OPTION+COMMANDE+ENTREE."
 

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 305
dernier inscrit
EDIT