MS Excel 시트에 저장된 질병 데이터 세트가 있으며 데이터 형식은 다음과 같습니다.
| Object Name | Symptom 1 | Symptom 2 | Symptom 3 |...| Symptom N | Disease | | ABC | 1 | 0 | 0 |...| n | XYZ | | ABC | 0 | 1 | 0 |...| n | XYZ | | ABC | 1 | 0 | 1 |...| n | YZX | | ABC | 1 | 1 | 0 |...| n | XYZ |
여기서 첫 번째 열은 변수 즉, 일부 개체의 이름을 입력하고 나머지 열은 마지막 열이 질병 이름입니다. 그 사이에있는 열은 해당 개체의 특정 질병에 대한 증상 열입니다.
이제 시트의 각 행에 대해 결정 변수로 질병 열을 사용하여 값이 1 인 모든 증상 속성 (즉,이 증상이있는 경우)을 가져오고 싶습니다. 논리는 다음과 같습니다.
for each row in the sheet
--> IF (Disease = XYZ)
--> Get all the Symptoms variables where value is 1
첫 번째 행에 대해 원하는 결과는 다음과 같습니다.
행 1-> XYZ (Symptom1)
행 2-> XYZ (Symptom2)
행 3-> XYZ (Symptom1, Symptom3)
행 4-> XYZ (Symptom1, Symptom2)
IF 수식을 사용하여 MS Excel에서 어떻게 할 수 있습니까? 이와 관련하여 도움을 주시면 감사하겠습니다.
여분의 빈 워크 시트를 감당할 수 있다면 여기에 예가 있습니다. 하자 Sheet1
주요 워크 시트 수 및 Sheet2
빈 하나이며, 증상의 제목은에 Sheet1!$C$4:$F$4
있고 플래그는에 Sheet1!C5:F8
있습니다.
유형
=B5&IF(Sheet1!C5,","&Sheet1!C$4,"")
에 셀 C5
에 Sheet2
넣은 다음이 셀을 복사하여 블록을 채 웁니다 Sheet2!C5:F8
. 마지막 열 ( Sheet2!F5:F8
)에는 행당 증상 목록이 포함 됩니다 ( 앞에 쉼표가 추가됨).
그런 다음 수식을 추가하십시오.
=G5&"("&REPLACE(Sheet2!F5,1,1,"")&")"
셀 Sheet1!H5
에 넣고 Sheet1
열 아래로 복사합니다.
데이터베이스가 너무 크고 이러한 낭비가 옵션이 아닌 경우 적절한 수정을 통해 VBA 기능 을 사용 하는 것이 좋습니다.
편집하다:
몇 가지 제안 :
~ 2000 개의 레코드에서 잘 작동하지만 전체 크기를 처리 할 수없는 경우 적어도 청크로 분할 할 수 있습니다.
VBA 솔루션도 가능한 대안입니다.
하나 더 (OT) 대안은 Gnumeric 을 사용하는 것 입니다. excel
파일을 읽고 쓸 수 있고, 그 concatenate
기능은 범위를 적절하게 처리 할 수 있으므로 OP에 대한 단일 셀 공식 솔루션이 있습니다.
사용자 정의를 만들 수도 excel Add-on
있지만이 경우 과잉 일 것 같습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다