Squeeze un CONCATENATE si le champ est vide, donc l'espace n'est pas trop grand

J'ai un problème où je / nous avons créé un CONCATENATE de différents champs dans Excel (voir ci-dessous) et tous ont un text actuellement qui est bien et nous avons appliqué des espaces uniques entre chaque jointure.

Le problème que j'ai est que si un champ est vide, mon espace unique devient un double espace sortingple et ne semble pas très propre dans une string de text standard.

Existe-t-il un moyen de le compresser si un champ / une cellule est vide?

=CONCATENATE(M30," ",M31," ",M32," ",M33," ",M34," ",M35," ",M36," ",M37," ",M38," ",M39," ",M40," ",M44) 

Enveloppez votre CONCATENATE dans = TRIM .

Exemple SO18264717

Écrivez une fonction de macro et utilisez-la dans la feuille.

 Function NoSpaceConcat(oRngJoin As Range) As Ssortingng Dim oRng As Range, sTxt As Ssortingng sTxt = "" For Each oRng In oRngJoin If Not IsEmpty(oRng) Then sTxt = sTxt & oRng.Value & " " Next NoSpaceConcat = Trim(sTxt) End Function 

Dans la feuille de calcul, mettez formula =NoSpaceConcat( puis mettez en surbrillance la plage que vous souhaitez join et appuyez sur Entrée. Beaucoup plus propre que n'importe quelle formule embeddede je dirais.

J'ai une réponse, mais ce n'est pas joli. Vous pouvez replace les splats vierges par des clauses if et isblank. Si la cellule est vide, alors ne faites pas un espace vide autrement.

Votre formulaire serait alors

= CONCATENATE (M30, IF (ISBLANK (M30), "", ""), M31, IF (ISBLANK (M31), "", ""), M32, IF (ISBLANK (M32), "", "") , M33, IF (ISBLANK (M33), "", ""), M34, IF (ISBLANK (M34), "", ""), M35, IF (ISBLANK (M35), "", ""), M36 , IF (ISBLANK (M36), "", ""), M37, IF (ISBLANK (M37), "", ""), M38, IF (ISBLANK (M80), "", ""), M39, IF (ISBLANK (M39), "", ""), M40, IF (ISBLANK (M40), "", ""), M44)