2017-02-14 4 views
0

Excel SheetExcel Formel: Schnappen der Spaltenname

oben Excel-Blatt zu bestimmten Zelle entsprechen muß i eine Formel, die diese bestimmte Spaltennamen extrahieren, wo „1“ vorhanden ist, und den Namen in der entsprechenden Zelle eindringen. Beispiel - Im obigen Bild enthält jede Zeile, die der Spalte "Tags" entspricht, den Spaltennamen, dessen entsprechende Zelle "1" enthält.

Antwort

2

Für eine 4-Säule Beispiel können Sie verwenden:

=SUBSTITUTE(TRIM(IF(A2,$A$1,"")&" "&IF(B2,$B$1,"")&" "&IF(C2,$C$1,"")&" "&IF(D2,$D$1,""))," ",", ")

Für 7 Spalten, fügen Sie einfach zusätzliche IF Anweisungen innerhalb der TRIM nach dem gleichen Muster.

Die Formel beruht auf 1=TRUE, um es kurz zu halten. Das Ergebnis jeder IF wird von einem Leerzeichen gefolgt. Die TRIM entfernt zusätzliche Leerzeichen, wenn keine 1 auftritt. Schließlich konvertiert SUBSTITUTE in ,, so dass Sie eine durch Kommas getrennte Liste erhalten.

Beachten Sie, dass:

Zierleisten zusätzliche Leerzeichen aus dem Text, am Anfang oder Ende des Textes nur einzelne Leerzeichen zwischen den Wörtern und keine Leerzeichen zu verlassen.

enter image description here

0

konnte keine non-vba-Lösung zum Verketten eines Bereichs finden.Also hier ist ein UDF

Function conCatRange(ByVal criteriaRange As range, _ 
         ByVal criteria As String, _ 
         ByVal conRange As range, _ 
         ByVal separator As String) As String 

    Dim c As range 
    conCatRange = "" 

    For i = 1 To conRange.Columns.Count 
     If (criteriaRange(1, i) = criteria) Then 
      conCatRange = conCatRange & conRange(1, i) & separator 
     End If 
    Next i 

    conCatRange = Left(conCatRange, Len(conCatRange) - 1) 
End Function 
  1. criteriaRange = Bereichs Sie 1s überprüfen möchten,
  2. Kriterien = 1 (in Ihrem Fall)
  3. conRange = Kopfbereich
  4. Separator = ""

wenn Sie Zusammenfassung und Parameterbeschreibungen hinzufügen möchten sehen den Link How to put a tooltip on a user-defined function

0

Gesetzt Ihr Kopfbereich AK ist,

Sie könnten Sie diese Formel von L2 verwenden ab:

= IF (MID (TRIM (IF (A2 = 1, A $ 1, "") & IF (B2 = 1, "" & B $ 1, "") & IF (C2 = 1, "" & C $ 1, "") & IF (D2 = 1, "" & D $ 1, "") & IF (E2 = 1, "" & E $ 1, "") & IF (F2 = 1, "" & F $ 1, "") & IF (G2 = 1, "" & G 1 $ "") & IF (H2 = 1, "" & H $ 1, "") & IF (I2 = 1, "" & I $ 1, "") & IF (J2 = 1, "" & J $ 1, "") & IF (K2 = 1, "," & K $ 1, "")), 1,2) = ",", MID (TRIM (IF (A2 = 1, A $ 1, "") & IF (B2 = 1, "," & B $ 1, "") & IF (C2 = 1, "," & $ C $ 1, "") & IF (D2 = 1, "," & D $ 1, "") & IF (E2 = 1, " "& E $ 1," ") & IF (F2 = 1,", "& F $ 1," ") & IF (G2 = 1,", "& G $ 1," ") & IF (H2 = 1, "," & H $ 1, "") & IF (I2 = 1, "," & I $ 1, "") & IF (J2 = 1, "," & J $ 1, "") & IF (K2 = 1, "," & K $ 1, "")), 3,1000), TRIM (IF (A2 = 1, A $ 1, "") & IF (B2 = 1, "," & B $ 1, "") & IF (C2 = 1, "," & C $ 1, "") & IF (D2 = 1, "" & D $ 1, "") & IF (E2 = 1, "" & E $ 1, "") & IF (F2 = 1, "" & F $ 1, "") & IF (G2 = 1, "" & G 1 $ "") & IF (H2 = 1, "" & H $ 1, "") & IF (I2 = 1, "" & I $ 1, "") & IF (J2 = 1, "," & J 1 $ "") & IF (K2 = 1, "" & K $ 1 "")))

Diese Formel hat eine Grenze von 1000 Zeichen in Spalte durch die Mid-Funktion. und es wiederholt dreimal die gleiche Formel wegen des Trennzeichens: "," aber wenn Sie das Ergebnisformat nicht stören, können Sie es zu einem kurz machen. Füllen Sie einfach 1 in Spalten und der Spaltenname erscheint.

Hoffe, das hilft.