하나의 워크시트를 읽고 데이터를 다른 워크시트에 로드하되 단지 참조로만 사용하지 마세요.

하나의 워크시트를 읽고 데이터를 다른 워크시트에 로드하되 단지 참조로만 사용하지 마세요.

데이터베이스의 원시 데이터 덤프인 장비 자산 및 속성 목록이 있습니다. 장비 상태(예: 실행 중, 대기 중 등) 또는 오일 레벨과 같은 속성 중에는 헤더 및 자리 표시자와 같은 항목도 별도의 기록 라인으로 포함됩니다. 이것이 제가 데이터 측면에서 작업하는 것입니다.

이 데이터로 수행하고 싶은 작업은 다른 기준 중 부분 텍스트 줄을 기반으로 선택하여 해당 정보로 다른 시트를 채우는 것입니다. 다음은 제가 확인하고 있는 셀에 포함되는 내용의 샘플입니다.

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"

내가 확인하려는 것은 해당 텍스트 줄의 "DE-OILING D" 부분입니다. 여기에는 수백 개의 레코드가 포함될 수 있으며 해당 부분 텍스트만으로 레코드를 가져오면 필요하지 않은 다른 수백 개의 레코드는 가져오지 않습니다.

이제 이것이 기능으로 가능해지기를 바라고 있습니다. 나는 문을 사용하여 해당 데이터 목록에 있는 이러한 레코드의 수를 셀 수 있다는 것을 알고 있습니다 COUNTSIF(이 공식은 "=COUNTIF('DBASE SHEET'!B:B,A4)"에 적합합니다). 따라서 나는 그것이 감지될 수 있다는 것을 알고 있지만 평생 동안 "De-Oiling D" 텍스트를 조건부 인수로 확인한 다음 다음을 기반으로 다른 데이터를 참조하여 다른 데이터 필드를 가져오는 방법을 알아낼 수 없습니다. 그 기준.

나는 index(), indirect(), 을 시도해 보았는데 vlookup()그것은 완전히 다른 것일 수도 있고 아마도 이러한 기능들의 조합일 수도 있습니다. 어느 쪽이든 공식이 작동하도록 할 수는 없는 것 같습니다.

이제 여기에 또 다른 주름이 있습니다. 새 워크시트로 가져오려는 레코드를 감지한 후에는 새 데이터 목록을 만들 수 있지만 그 안에 빈 줄이 전혀 없을 수 있기를 원합니다.

|셀 구분 기호로 사용하여 샘플 기록 :

|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | SUCTION PRESSURE|
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | OIL LEVEL       |

내가 출력으로 갖고 싶은 것은 공백이나 그 어떤 것도 없이 다음과 같습니다.

|DE-OILING C | P-1370 | RUNNING STATUS  |
|DE-OILING C | P-1370 | OIL LEVEL       |
|DE-OILING C | P-1370 | SUCTION PRESSURE|
|DE-OILING D | P-1470 | RUNNING STATUS  |
|DE-OILING D | P-1470 | OIL LEVEL       |
|DE-OILING D | P-1570 | RUNNING STATUS  |
|DE-OILING D | P-1570 | OIL LEVEL       |

답변1

COUNTIFS() 문을 고려하면 올바른 방향으로 가고 있습니다. 숫자를 비교할 때와 마찬가지로 텍스트 문자열을 처리하고 > 및 < 한정자를 사용하여 각 문자열이 찾고 있는 섹션으로 시작하는지 확인합니다.

=COUNTIFS('DBASE SHEET'!B:B,">"&A4,'DBASE SHEET'!B:B,"<"&A5)

A4에는 귀하의

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D"

A5에는 다음이 포함됩니다.

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING E"

A5를 자동으로 채우는 동적 수식이 필요한 경우 다음을 시도해 보세요.

=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)

관련 정보