2011-12-13 3 views
1

문제가 있습니다. http://goo.gl/i82eA 이것은 필요한 출력을 가지고있는 샘플 데이터입니다. 현재 수동으로 여러 if 문을 사용하여 작업을 수행하는 사용자 정의 함수가 있지만 콜럼 (colum)에서 특정 색을 찾고 해당 색에 대응하는 색 맵을 반환하는 경우 vlookup과 같은 작업을 수행 할 수 있기를 원합니다.복잡한 Vlookup/VBA 함수 또는 매크로 필요한 경우 "다음 텍스트가 포함 된 경우 vlookup"

파란색을 포함하는 모든 셀을 필터링하고 대상 셀에 파란색을 지정하고 다음 표에있는 다음 값으로 필터를 실행하는 필터 기능처럼 사용하십시오.

 

Color ColorMap  Text    Required Output 
blue blue   Deep Blue Shoe Blue (if Text contains blue return blue) 
red  red   Deep red Shoe red (if Text contains red return red) etc 
tan  brown  Tan Shoe   brown 
navy blue   Navy Emp Shoe blue 
jade green  Jade Shoe  green 
plum red   Plum Red Shoe multicoloured (if Text contains more than 1 color return multicolored) 

미리

function_name(lookup_text,lookup_table,destination) 

감사 데이터를 검색하기위한 1 열을 조회 할 및 1 열의 대상 칼럼의 경우 함수 이처럼 입력 2 열 같아야

PS :

: 여기 지금

코드를 사용하여 코드 임입니다

답변

4

이 값은 Text 값을 찾고 ColorMap 값을 반환합니다. 둘 이상의 일치 항목이 발견되면 "여러 색상으로 표시됨"이 반환됩니다. 참고 : 이것은 배열 수식입니다 - Ctrl + Shift + Enter를 사용하여 입력하십시오.

=IF(SUM(IF(ISNUMBER(SEARCH(A$2:A$7,C2)),1,0))>1,"multicolored",LOOKUP(2^15,SEARCH(A$2:A$7,C2),B$2:B$7))

여기에 같은 일을하는 기능입니다. 참조 테이블은 명명 된 범위 여야합니다. 다음과 같은 함수를 호출하십시오. =ColorMap(C2,"ColorTable") ColorTable$A$2:$B$7을 나타내는 명명 된 범위입니다.

Public Function ColorMap(LookupValue As Variant, LookupTableName As String) As String 
    Dim vTable As Variant 
    Dim lIdx As Long 
    Dim sColor As String 

    ' transfer lookup table to 2D range & loop through to find matches 
    vTable = Names(LookupTableName).RefersToRange.Value 
    For lIdx = LBound(vTable, 1) To UBound(vTable, 1) 
     If UCase$(LookupValue) Like "*" & UCase$(vTable(lIdx, 1)) & "*" Then 
      sColor = sColor & ", " & vTable(lIdx, 2) 
     End If 
    Next lIdx 
    If Len(sColor) > 2 Then sColor = Mid$(sColor, 3) 
    ' map multiple matches to "multicolored" 
    If InStr(sColor, ",") > 0 Then sColor = "multicolored" 
    ColorMap = sColor 
End Function 
+0

와우! 감사!! 저 멋진식이 요법을 깨뜨릴 수 있습니까? 그걸 함수로 만들 수있는 방법이 있습니까? 가능한 경우 어떻게 vba를 사용할 수 있습니까? 고맙습니다 !!!!!!!!!!!!!!!!! – Alfred

+0

업데이트 된 버전은 "여러 색상의"반환 값을 처리합니다. 당신은 여전히 ​​기능이 필요합니까? 그렇다면 아마 더 직설적이지만 물론 VBA와 매크로 사용이 필요합니다. –

+0

안녕 레이첼, 음, 나는 공식을 시도 ..하지만 매화 레드 신발에 대한 여러 가지를 제공하지 않는 - 빨간색 만 제공합니다. 감사! 그렇습니다. 함수가 더 쉽고 매크로 사용이 문제가되지 않습니다! – Alfred

관련 문제