2017-03-29 4 views
2

J'ai un tableau avec les données dans le format ci-dessous.Concaténer les en-têtes de colonne si la valeur dans les lignes ci-dessous est non vide

Data
enter image description here

Je veux la table fini d'avoir la colonne vide pour être renseigné comme l'a souligné celui ci-dessous.

Finished Table
enter image description here

, j'ai besoin d'une formule ou VBA qui renverra et concaténer les en-têtes de cellules non-vides dans chaque ligne.

+0

Qu'avez-vous essayé jusqu'à présent? À tout le moins, une instruction 'IF()' imbriquée semble fonctionner. – BruceWayne

+0

J'ai essayé une fonction SI mais je recevais des erreurs qu'il y avait trop d'arguments – Elissa

Répondre

4

Utilisez¹ comme suit la formule de matrice .

=TEXTJOIN("-->", TRUE, IF(LEN(C3:I3), C$2:I$2, "")) 

enter image description here

versions pré-Excel 2016

Pendant que vous pouvez simplement enchaîner une série de instructions IF, un autre plus propre peut-être écrire une fonction définie par l'utilisateur (alias UDF) .

Dans une feuille de code module standard VBA:

Function udf_Stitch_Together(r As Range, _ 
          h As Range, _ 
          Optional d As String = "-->", _ 
          Optional blnks As Boolean = False) As String 
    Dim s As String, c As Long 
    For c = 1 To r.Cells.Count 
     If CBool(Len(r.Cells(c).Text)) Then _ 
      s = s & IIf(Len(s), d, vbNullString) & h.Cells(c).Text 
    Next c 
    udf_Stitch_Together = s 
End Function 

enter image description here


¹ Le TEXTJOIN a été introduit avec Excel 2016 dans les versions suivantes: Excel pour les téléphones Android, Excel Mobile, Excel 2016 avec Office 365, Excel 2016 pour Mac, Excel Online, Excel pour iPad, Excel pour iPhone et Excel pour tablette Android.

+1

Clever! Je jouais avec 'TextJoin()' mais je n'arrivais pas à trouver un moyen sympa de remplir uniquement les cellules avec une valeur. – BruceWayne

+0

J'utilise Excel 2010 et il ne reconnaît pas la formule TEXTJOIN. Mais on dirait que c'est exactement ce que je veux faire. Toute formule similaire pour ma version d'Excel? – Elissa

+0

Cela dépend du nombre de colonnes ** réelles ** que vous souhaitez examiner. Sept colonnes ne sont pas hors de portée pour même sept conditions IF imbriquées, mais il existe des formules plus courtes. – Jeeped