2016-07-21 12 views
1

Я пытаюсь найти способ поиска «Неизвестного» значения для нескольких столбцов. Когда он присутствует, я хотел бы вернуть все столбцы заголовков, которые значение отображается в одной ячейке для каждой строки в столбце B.Excel: найти значение для нескольких столбцов и столбца заголовка возврата

Например, для строки 2 (первая строка под моей строкой заголовка) I хотите, чтобы оно возвращало каждое имя столбца, которое «Неизвестно» появляется из столбца F в столбец Y только для строки 2 и помещает имя столбца в B2. Я хочу повторить этот процесс для всех моих 9064 строк.

Я использую Excel 2010. Я искал индекс соответствия, но не смог найти способ делать то, что хотел. Есть ли способ поиска значения в нескольких столбцах и возврата каждого столбца столбца, который содержит значения для этой строки и помещает все заголовки столбцов в одну ячейку?

Data View

+0

_»Я хочу, чтобы количество раз„“появляется„Unknown _ и _“возвратитесь каждый заголовок столбца, который появляется значения в для этой строки и поместить все колонки заголовки в одну ячейку "_, кажется, противоречит ... Можете ли вы дать явный пример результата? – EBH

+0

Я сделал исправление, которое было сформулировано плохо. Я хотел бы вернуть каждое имя столбца, в котором присутствует Неизвестное для каждой строки. Так, например, на моем изображении «Data View», я бы хотел, чтобы он имел B2: Install_Method_CD Manuf_Cd Coating_Cd Wall_Thickness Join_Method_Cd и т. Д., Потому что Unknown находится в этих столбцах. – elagarde

ответ

0

Вот пользовательская функция. Первое место следующий код в обычном модуле (Alt + F11 >> Вставка >> Модуль >> Копирование/вставка >> Alt + Q) ...

Function AConcat(a As Variant, Optional Sep As String = "") As String 
' Harlan Grove, Mar 2002 

    Dim Y As Variant 

    If TypeOf a Is Range Then 
     For Each Y In a.Cells 
      AConcat = AConcat & Y.Value & Sep 
     Next Y 
    ElseIf IsArray(a) Then 
     For Each Y In a 
      AConcat = AConcat & Y & Sep 
     Next Y 
    Else 
     AConcat = AConcat & a & Sep 
    End If 

    AConcat = Left(AConcat, Len(AConcat) - Len(Sep)) 

End Function 

Затем введите следующую формулу в АА2, подтвердите с помощью CONTROL + SHIFT + ENTER, и скопируйте:

=SUBSTITUTE(AConcat(IF(LEFT(F2:Y2,3)="Unk",", "&$F$1:$Y$1,"")),", ","",1) 
+0

Это работало потрясающе. Я просто замечаю, что есть некоторые значения только как «Unk», и я прошу прощения за то, что раньше этого не видел. Есть ли легкая поправка, чтобы сделать это, что бы подобрать что-нибудь с «Unk». Есть несколько полей, которые были заполнены пользователем, поэтому могут быть орфографические ошибки, и что бы это было не так просто «Unk» или «Unknown». Я попытался добавить подстановочный шаблон в массиве, но он не сработал. Какие-либо предложения? – elagarde

+0

Хорошо, я отредактировал формулу так, что теперь она ищет ячейки, которые начинаются с «Unk». – Domenic

+0

Работы СОВЕРШЕННО! Спасибо огромное! – elagarde

Смежные вопросы