2017-02-14 7 views
0

Excel Sheetформулы Excel: захватить имя столбца, соответствующего конкретной ячейку

В Над Excel лист я нужна формула, которая будет извлекать это конкретное имя столбца, где «1» присутствует и ввести это имя в соответствующей ячейке. Пример. В приведенном выше изображении каждая строка, соответствующая col «Теги», содержит имя столбца, соответствующая ячейка которого содержит «1».

ответ

2

Например, 4 колонки вы можете использовать это:

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

За 7 столбцов, просто добавить дополнительные IF заявления внутри TRIM следующие той же схеме.

Формула полагается на 1=TRUE, чтобы сократить ее. Результат каждого IF сопровождается пробелом. TRIM избавляется от лишних пробелов, когда нет 1. Наконец SUBSTITUTE преобразует в ,, поэтому вы получаете список с разделителями-запятыми.

Обратите внимание, что:

TRIM полосы лишние пробелы, оставляя только одиночные пробелы между словами и без каких-либо пробелов в начале или конце текста.

enter image description here

0

не удалось найти решение без vba для конкатенации диапазона.Так вот 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 = Range вы хотите проверить 1s,
  2. критерии = 1 (в вашем случае)
  3. conRange = заголовок Диапазон
  4. Сепаратор = ""

если вы хотите добавить резюме и параметры описание смотрите по этой ссылке How to put a tooltip on a user-defined function

0

Предположив ваш диапазон заголовка AK,

Вы можете использовать эту формулу из L2 по направлению вперед:

= IF (MID (TRIM (ЕСЛИ (A2 = 1, A $ 1, "") & IF (В2 = 1, "" & В $ 1 "") & ЕСЛИ (C2 = 1, "" & С $ 1 "") & ЕСЛИ (D2 = 1, "" & D $ 1 "") & ЕСЛИ (Е2 = 1, "" & Е $ 1 "") & ЕСЛИ (F2 = 1, "" & F $ 1 "") & ЕСЛИ (G2 = 1, "" & G $ 1 "") & ЕСЛИ (Н2 = 1, "" & Н $ 1 "") & ПЧ (I2 = 1, "" & I $ 1 "") & ЕСЛИ (J2 = 1, "" & J $ 1, "") & ЕСЛИ (К2 = 1, "," & K $ 1, "")), 1,2) = ",", MID (TRIM (IF (A2 = 1, A $ 1, "") & IF (B2 = 1, "," & В $ 1 "") & ЕСЛИ (C2 = 1, "" & $ C $ 1 "") & ЕСЛИ (D2 = 1, "" & D $ 1 "") & ЕСЛИ (Е2 = 1,» , "& Е $ 1", ") & IF (F2 = 1,", "& F $ 1", ") & ЕСЛИ (G2 = 1,", "& G $ 1", ") & ПЧ (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 "") & ЕСЛИ (Е2 = 1, "" & Е $ 1 "") & ЕСЛИ (F2 = 1, "" & F $ 1 "") & ЕСЛИ (G2 = 1, "" & G $ 1 "") & ПЧ (H2 = 1, "" & H $ 1, "") & ПЧ (I2 = 1, "" & I $ 1 "") & ЕСЛИ (J2 = 1, ","J $ 1, "") & ЕСЛИ (К2 = 1, "" & K $ 1 "")))

Эта формула имеет предел 1000 символа в столбце с помощью функции середине. и он повторяет 3 раза ту же формулу из-за разделителя: «,», но если вы не возражаете против формата результата, вы можете сократить его до одного. просто заполните put 1 в столбцах и появится имя столбца.

Надеюсь, это поможет.