매주 새로운 Excel 파일이 CRM 시스템에 의해 생성됩니다. 이 파일 이름에는 날짜 스탬프가 포함되어 있지만 고정된 위치(공유 포인트 URL)의 폴더에 저장됩니다.
이 파일은 상당히 크며 일반적으로 25,000~30,000개의 행을 포함합니다. 이 중 내 목적에 맞는 새 테이블을 만들어야 합니다.
내 목적과 관련된 행은 30-40개의 키워드/키 문구 목록에서 하나 이상의 키워드/키 문구와 일치해야 합니다. 그러나 이 키워드/핵심 문구 목록은 증가하기는 하지만 천천히 몇 달에 한 번씩 새 키워드를 추가합니다.
지루하고 오류가 발생하기 쉬운 이 수동 작업을 자동화할 수 있는 방법이 있습니까?
답변1
B
세 가지 다른 열(아래에서 , D
및 이라고 가정 F
)을 확인해야 하므로 OR
함수가 적절해 보입니다.
=OR(ISNUMBER(MATCH(B1,keyarray,0)),
ISNUMBER(MATCH(D1,keyarray,0)),
ISNUMBER(MATCH(F1,keyarray,0)))
세 열 중 하나와 일치하는 항목이 반환됩니다 TRUE
. 이를 데이터가 차지하는 첫 번째 행의 '도우미' 열에 배치합니다(예: 행 1 또는 adjust 및 B1
그에 따라 위).D1
F1
MATCH
B1
예를 들어 의 값이 에 존재하는지 확인합니다 keyarray
. 여기서 이는 키워드/키 문구 목록(~30-40개)이 포함된 범위에 대해 지정된 이름입니다. 동일한 시트나 통합 문서에 있을 필요는 없습니다. 그러나 그렇지 않은 경우 전체 경로를 지정해야 하며 새 데이터 배치에 수식을 적용할 때 '기타' 통합 문서를 열어 두는 것이 좋습니다.
0
정확한 일치만 강제합니다(또는 -1
보다 크거나 같은 가장 작은 값 B1
또는 1
가장 큰 값에 대해).
MATCH
배열에서 발견된 값의 위치를 반환합니다(그렇지 않으면 매개변수 0
, #N/A
). 이는 숫자이므로 결과를 ISNUMBER
제외하기 위해 숫자(모든 숫자)를 테스트합니다 #N/A
.
따라서 결과에 B1
, D1
또는 F1
가 있으면 – 그렇지 않으면 keyarray
입니다 .TRUE
FALSE
병합된 셀이 포함된 25~30,000개 이상의 행에 수식을 편리하게 복사하려면 마지막으로 사용된 행과 '도우미' 열의 교차점에 무언가(예: '끝')를 배치하세요(스프레드시트의 크기가 불필요하게 확장되는 것을 방지하기 위해). ). 수식이 포함된 셀을 복사하고 바로 아래 셀을 선택한 다음 Ctrl+Shift+Down
/Paste를 사용하여 마지막으로 점유된 행을 지나 계속하지 않고 '끝'을 덮어쓰지 않고 점유된 모든 행에 대해 도우미 열을 아래쪽으로 채웁니다.
에 대한 '도우미' 열을 필터링하고 TRUE
, 사용 중인 모든 열을 선택한 다음, 새 시트/통합 문서에 복사하여 붙여넣습니다. 새 시트/통합 문서에서 빈 행을 삭제하고 저장합니다. (소스에서 '도우미' 열을 삭제하도록 선택할 수도 있습니다.)
가끔 keyarray
명명된 범위에 항목을 추가할 때 추가 항목이 포함되는지 확인하세요.
답변2
이는 다양한 방법으로 해결될 수 있는 더 큰 작업입니다. 하지만 간단히 말해서, 그렇습니다. 이를 자동화할 수 있습니다.
시작하자면:
귀하의 CRM 시스템이 귀하가 직접 추출하려는 정보를 제공할 수 없다고 확신하십니까?
일반적으로 이는 SQL과 같은 데이터베이스 시스템을 기반으로 하며 이미 데이터를 추출하고 있으므로 필요에 맞게 이 출력을 수정할 수 있습니다.
이제 Excel의 가능성을 살펴보겠습니다.
- CRM에서 기본 데이터 가져오기
CRM에 대한 데이터 연결을 설정할 수 있습니다.
VBA 코드를 생성하여 폴더의 최신 파일을 가져오거나 설정된 데이터 연결을 이 새 파일로 업데이트할 수 있습니다.
VBA를 통해 최신 파일을 열고 원하는 데이터를 대상 워크시트에 복사할 수 있습니다.
...
- 여전히 필요한 경우 데이터 필터링
필터와 고급 필터, vlookup, countifs 및 vba 코드 예제를 살펴보는 것이 좋습니다. 여기와 다중 조건 필터링을 처리하는 stackoverflow에는 꽤 많은 질문이 있지만 이 문제를 올바르게 해결하려면 더 구체적인 내용을 제공해야 합니다.
제안 사항: 이 작업을 기본 데이터를 가져오고 필터링이 필요한 경우에만 나누겠습니다. 내가 보기에 필터링된 데이터를 프로세스의 훨씬 더 일찍 얻는 것이 가능해야 합니다. 아니면 다르게 말해주세요 :)