스프레드 시트에서 항목에 레이블을 지정하고 태그를 지정하는 방법


14

저는 스프레드 시트의 초보자이므로 매우 분명한 질문을한다면 용서해 주시기 바랍니다.

Excel / Google 스프레드 시트에서 태그를 사용할 수 있습니까? 읽고있는 모든 기사와 책을 기록 할 스프레드 시트를 만들고 있습니다. "I, Claudius"를 읽고 있다고 가정 해 봅시다. 나는 역사, 소설, 전기, 장애, 정치, 드라마라는 태그를주고 싶다. 그런 다음 "politics"태그가 지정된 기사 / 책을 모두 표시하려면 해당 태그를 사용하여 검색 / 표시 / 피벗 할 수 있습니다.

어쩌면 태그는 모두 하나의 셀에 있어야하며 각 단어는 쉼표로 구분되어야합니다. 각 단어가 자신의 셀에 있다면 테이블이 정말 지저분해질 것입니다.

다른 라벨링 솔루션에도 개방되어 있습니다.

감사!


Excel에서 태그 솔루션을 본 적이 없지만 태그 솔루션이 없다고 말하는 것은 아닙니다. 어쩌면 체크 아웃 에버 노트
Raystafarian

답변:


13

내가 아는 한 Excel에서 쉼표로 구분 된 태그를 구문 분석하고 요약 할 수있는 기본 제공 기능은 없습니다. 물론 워크 시트 함수와 약간의 VBA를 사용하여 고유 한 솔루션을 만들 수 있습니다. 이를위한 빠른 솔루션이 있습니다.

1 단계 : Alt+ F11를 눌러 Excel에서 VBA 편집기 창을 엽니 다. 사용자 정의 함수를 위해 새 모듈을 삽입하고이 코드에 붙여 넣으십시오.

Public Function CCARRAY(rr As Variant, sep As String)
'rr is the range or array of values you want to concatenate.  sep is the delimiter.
Dim rra() As Variant
Dim out As String
Dim i As Integer

On Error GoTo EH
rra = rr
out = ""
i = 1

Do While i <= UBound(rra, 1)
    If rra(i, 1) <> False Then
        out = out & rra(i, 1) & sep
    End If
    i = i + 1
Loop
out = Left(out, Len(out) - Len(sep))
CCARRAY = out
Exit Function

EH:
rra = rr.Value
Resume Next

End Function

이 기능을 사용하면 태그 데이터를 요약하기 위해 쉼표로 구분 된 목록을 만들 수 있습니다.

2 단계 : 워크 시트에서 검색하려는 태그를 셀 (아래 예의 H2)에 입력하십시오. 오른쪽의 셀에서 Ctrl+ Shift+ 를 눌러 다음 수식을 입력하십시오 Enter.

=IFERROR(CCARRAY(IF(NOT(ISERROR(FIND(H2,$B$2:$B$6))),$A$2:$A$6),", "),"No matches found.")

Ctrl+ Shift+ 를 누르면 Enter수식을 배열 수식으로 입력하게됩니다. {...}수식 입력 줄에 둘러싸여 나타납니다 . 수식 $B$2:$B$6에서는에 나열된 항목의 모든 태그를 보유하는 범위입니다 $A$2:$A$6.

여기에 이미지 설명을 입력하십시오

편집 :
일치하는 것이 하나의 셀의 목록이 아닌 열에 나열되는 것을 신경 쓰지 않으면 워크 시트 함수 만 사용하여 태그에 대한 일치를 반환 할 수 있습니다.

제목이에 Column A있고 태그가에 Column B있고 검색중인 태그가에있는 H2경우 다음 배열 수식 을 사용하고 I2필요한만큼 채울 수 있습니다.

=IFERROR(INDEX($A$1:$A$6,SMALL(IF(NOT(ISERROR(FIND($H$2,$B$1:$B$6))),ROW($B$1:$B$6),2000000),ROW()-1)),"")

여기에 이미지 설명을 입력하십시오

수식은 먼저 각 행의 태그에 검색어가 포함되어 있는지 여부에 따라 숫자 배열을 형성하여 작동합니다. 일치하는 것이 있으면 행 번호가 배열에 저장됩니다. 찾을 수 없으면 2000000이 배열에 저장됩니다. 다음으로 SMALL(<array>,ROW()-1)수식 의 일부 ROW()-1는 배열에서 가장 작은 값을 반환합니다 . 다음으로이 값은 INDEX()함수에 인덱스 인수로 전달되며 제목 배열에서 해당 인덱스의 값이 반환됩니다. 제목 배열의 행 수보다 큰 수를 INDEX()인수로 전달 하면 오류가 반환됩니다. 일치하는 항목이 없으면 2000000이 인수로 전달되므로 오류가 리턴됩니다. IFERROR()그런 다음 이 함수는 이 함수를 반환합니다 "".

ROW()이 공식에서 어떻게 사용 되는지 파악하는 것이 중요합니다 . 다른 행에서 시작하여 결과 목록을 표시 SMALL()하려면 배열에서 첫 번째로 작은 값을 리턴하도록 함수 의 두 번째 인수를 조정해야합니다 . 예를 들어 결과 목록이 행 2 대신 행 1에서 시작되면 대신을 사용 SMALL(...,ROW())합니다 SMALL(...,ROW()-1).

또한 제목 및 태그 목록이 1 행에서 시작되지 않으면 수식도 조정해야합니다. 의 두 번째 인수 IF()기능은 행이 아닌 행 1에서 제목이 시작 목록, 당신은 포함하는 공식이 필요합니다 경우 데이터의 첫 행에 일치 1. 예를 반환하도록 조정해야합니다 IF(...,ROW($A$2:$A$7)-1,...)대신 IF(...,ROW($A$1:$A$6),...).


와우, 이것은 완벽하게 작동합니다! 그래도 Google 스프레드 시트에서 선호합니다. 그러나 JavaScript를 사용합니다. 나는 언어에 완전하고 완전 초보자이지만 거기에서 비슷한 것을 시도 할 것입니다. 두 가지 질문 만 더 : 데이터를 "요약"한다는 것은 무엇을 의미합니까? 1 단계의 코드는 무엇을합니까? Google Spreadsheet의 JavaScript와 동일한 작업을 수행해야한다고 생각하기 때문에 특히이 질문을하고 있습니다. 귀하의 솔루션에 정말 감사합니다!
nusantara

대단한데, 다행이다. "요약"이란 쉼표로 구분 된 일치하는 제목 목록을 만드는 것을 의미합니다. 이 목적을 위해 VBA가 필요합니다. 기본 제공 Excel 함수를 사용하면 일치하는 태그를 선택할 수있는 배열 수식을 만드는 것이 매우 간단합니다. 그러나 CONCATENATEExcel 의 함수는 배열을 인수로 사용할 수 없으므로 배열에서 첫 번째 항목을 읽으 므로 VBA가 없으면 하나의 셀에 이러한 결과를 반환 할 수 없습니다. VBA 함수는 값 배열에서 쉼표로 구분 된 목록을 작성하도록 만들어졌습니다.
Excellll

위의 답변을 작성한 후 VBA없이 비슷한 작업을 수행 할 수있는 방법이 있음을 깨달았습니다. 하나의 셀에서 일치하는 제목 목록을 반환하는 대신 일치하는 제목 열이 반환 될 수 있습니다. 관심이있는 경우이 방법을 포함하도록 게시물을 편집 할 수 있습니다.
Excellll

VBA없이 가능합니까? 더 좋을 것 같아요. 너무 불편하지 않다면 언급 한 방법을 포함 시키면 좋을 것입니다. 이 주제를 검색하는 모든 사람에게 도움이 될 것입니다! "요약"을 설명해 주셔서 감사합니다. 연결도 시도했지만 예, 원하는 방식으로 사용할 수 없었습니다. 이제 나는 그것이 논쟁처럼 행동 할 수 없다는 것을 알고 있습니다.
nusantara

네 가능합니다. 몇 분 안에 여기에 솔루션을 게시하려고합니다. 지연 돼서 죄송합니다!
Excellll April

2

경우에 따라 프로그래밍 방식으로 잘 작동하는 동안 수동 접근 방식이 효과적이라는 것을 알았습니다. 태그에 열을 사용하면 열에 0을 입력하여 행 항목에 쉽게 태그를 지정할 수 있습니다. 그런 다음 하나의 행이 있고 해당 행의 각 태그 열에 1을 입력합니다 (이 행의 색상을 지정할 수 있음). 그런 다음 태그 중 하나를 기준으로 정렬하면 1 (파란색) 행이 구분자로 사용됩니다. 필터링 된 결과 (0)와 다른 모든 것 (_) 사이.

이것은 몇 가지 장점이 있습니다. 1. 매번 태그를 입력 할 필요는 없습니다. 2. 중복되거나 유사한 항목이있는 것으로 확인하기 위해 쉽게 상호 참조 할 수 있습니다.


1

또 다른 아이디어 :

내장 필터 기능을 사용하십시오. 태그 열을 기준으로 필터링하면 지정된 태그가 포함 된 행을 검색 할 수 있습니다.

태그 목록이있는 행 : 코미디, 공포, 로맨스

이 세 가지 태그 중 하나를 검색하면 나타납니다.


1

비 VBA 접근 방식은 항목을 쉼표로 구분하여 한 열 (H 열이라고 함)에 태그를 나열하는 것입니다. 거기에서 "Text to Columns"와 "Remove Duplicates"를 조합하여 태그 목록을 얻습니다. 이것을 메인 시트의 헤더 행에 복사합니다 (이 경우 L 열에서 시작). 그런 다음 개별 태그 헤더 아래의 각 셀에 다음을 입력하십시오.

=IF((ISNUMBER(SEARCH(L$1,$H2)))=TRUE,1,0)

이것은 두 세계의 장점을 모두 제공합니다.-태그 열 (H)은 사람들이 읽기 쉽습니다. 개별 태그 열 (0과 1이있는)은 컴퓨터가 읽기 쉽습니다. 주어진 태그 세트 내에 있으면 동적입니다. 그렇지 않은 경우 머리글 행에 새 태그를 추가 한 다음 수식을 복사해야합니다.

거기에서 피벗 테이블은 당신의 친구입니다.


0

태그를 어떻게 사용하고 싶은지 명확하지 않습니다. 그러나 Google 스프레드 시트에서 SPLIT () 함수를 사용하여 공백, 쉼표 또는 원하는대로 구분 된 태그 문자열을 여러 다른 셀로 나눌 수 있으며 Excel에서도 검색 할 수있는 기능이 있습니다. 태그 셀.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.