날짜 / 시간에 따른 조건부 일치


0

두 장에 일련의 이름과 날짜 시간이 있습니다. 하나는 LargerSheet라고하고 다른 하나는 Sheet1이라고합니다. LargerSheet에서 각 이름에는 여러 날짜 시간이 연결되어 있습니다. Sheet1에는 각 날짜 시간에 여러 이름이 연결되어 있습니다. 목표는 Sheet1의 이름이 LargerSheet에서 일치하는 이름 값을 가지고 있는지 확인하여 Sheet1의 날짜 시간과 LargerSheet에서 일치하는 이름과 연관된 날짜 시간의 차이가 72 시간 미만이되도록하는 것입니다. LargerSheet에서 날짜와 일치하는 날짜 시간은 Sheet1의 이름과 연관된 날짜 시간보다 큰 조건을 만족해야합니다. 여러 날짜 시간이 기준과 일치하는 이벤트를 처리하려면 첫 번째 일치 만 보는 것이 좋습니다. 샘플 시트 는 여기에서 찾을 수 있습니다 .

또한 이전에 비슷한 질문을했지만 도움이되는 것보다 더 혼란스러운 질문을했다고 생각합니다. 이러한 질문은 여기여기 에서 찾을 수 있습니다 .


샘플 파일의 6 행은 'LargeSheet에서 일치하는 날짜 시간도 Sheet1의 이름과 연관된 날짜 시간보다 더 길어야한다는 조건'을 충족시키지 못하는 것으로 보입니다. 뭔가 빠졌습니까?
krowe

@krowe 지적 해 주셔서 감사합니다, 나는 그 입장에서 시간을 완전히 간과했습니다! 파일이 수정되었습니다.
114

답변:


1

나는 당신의 질문에 대답하기 위해 가까이 왔지만 여전히 약간의 조정이 필요하다고 생각합니다. MS Query를 사용하여 통합 문서에서 통합 문서를 쿼리합니다. 이를 통해 시트에 대해 SQL을 실행하고 VLOOKUP보다 훨씬 복잡한 계산을 수행 할 수 있습니다.

이제 단계로 넘어갑니다.

1. 리본의 데이터 탭에있는 외부 데이터 가져 오기 섹션에서 "다른 소스에서"를 클릭하고 "Microsoft 쿼리에서"를

데이터 탭-다른 소스에서-ms 쿼리에서

선택합니다. 2. "Excel 파일"을

엑셀 파일 선택

선택합니다. 3. 통합 문서 선택에서 페이지로 이동합니다. 또한 새 파일 확장자의 코드를 업데이트하지 않았으므로 모든 파일로 변경하십시오.

통합 문서로 이동

4. 다음으로, 조회하려는 시트를 선택하십시오. 아래와 같이 Microsoft Query 편집기를 사용하는 한 오류가 발생하더라도 걱정하지 마십시오.

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

이제 Access에서와 같이이 쿼리 작성을 시작하거나 SQL보기로 전환하여 쿼리를 작성할 수 있습니다. 위 이미지의 SQL 버튼입니다. 편집기가 빨라서 붙여 넣기를 SSMS 또는 N ++에 복사하십시오. 완료되면 "return data"라는 "door exit"버튼을 누르십시오.

제시된 문제에 대한 SQL은 다음과 같습니다.

SELECT `S1`.DATES , `S1`.NAMES , MAX(`LS`.DATES) 
FROM `C:\Admin\StackExchange\vlookup multiple results.xlsx`.`Sheet1$` `S1`
LEFT OUTER JOIN `C:\Admin\StackExchange\vlookup multiple results.xlsx`.`LargerSheet$` `LS`
ON `S1`.NAMES = `LS`.NAMES
WHERE (`S1`.DATES - `LS`.DATES) > -3 and (`S1`.DATES - `LS`.DATES) < 3
group by `S1`.DATES, `S1`.NAMES

새 워크 시트에 데이터를 추가하여 다음 결과를 얻으십시오.

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

어떤 이유로 행 2가 실제로 75 시간이기 때문에 쿼리와 일치하지 않는 것 같지만이 시점에서 Excel 날짜 시간 변환과 관련된 문제에 대해 기록합니다. SQL (MS 쿼리) 및 다시.



추신 :이 답변은 내 블로그에 게시되었습니다. 아무도 내가 그것을 쓰지 않고 복사했다고 생각하는 경우. 내 블로그 링크에 플래그를 지정하고 싶지 않았습니다. 찾으면 연결할 수 있습니다.


그 흥미 롭군요. 나는 쿼리 사용을 생각하지 않았다. 나는 이것을 시도 할 것이다.
114

불행히도 해당 쿼리는 빈 열을 반환하는 것 같습니다.
114

@ 114 위는 작동하는 스크린 샷입니다. 구문 오류 일 수 있으므로 실제 쿼리를 게시하십시오.
KingOfAllTrades

0

이를 위해 Power Query Add-In을 사용합니다.

많은 시나리오에서 한 줄의 코드를 작성할 필요가없는 경우 Power Query UI에서 클릭하면됩니다. 각 단계마다 데이터 변환의 결과가 표시되어 생산적인 테스트 / 디버깅이 가능합니다.

OneDrive 데모 폴더에서 "파워 쿼리 데모-Datetime intervals.xlsx 기반 조건부 일치"를 다운로드하여 사용해 볼 수있는 프로토 타입 솔루션을 만들었습니다.

http://1drv.ms/1AzPAZp

FinalResult 시트에 내 결과가 있습니다.

FirstMatches Query의 Matches 열에 대한 "if"문인 한 줄의 코딩을 수행해야했습니다.


질문에 판 한계에 대한 언급이 없었습니다. 참고로 아마존에서 미화 100 달러 정도의 Excel 독립 실행 형 라이센스와 함께 Power Query를 사용할 수 있습니다. 내 답변에 대해 생각할 때 Superuser.com에서 나의 주요 기여는 Power Query와 Power Pivot에 있습니다. 대부분의 사람들은 이러한 옵션을 알지 못합니다. 나는 그 토론을 거기에두고 내 명성 점수 자체를 말해 보자 ...
Mike Honey

질문에 대한 버전 제한 (2003, 2007 등)은 거의 없으며 아직 판 (Pro, Pro Plus)을 게시 한 사람이 아직 없습니다. 대부분의 회사 및 소규모 비즈니스 사용자에게 제공되는 기본 버전의 Office 인 Office Pro는 Power Query와 호환되지 않습니다.
KingOfAllTrades
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.