=IFERROR(LOOKUP(1E+100,SEARCH(AA$J$9:$J$365,BB$F12),AA$Q$9:$Q$365),"")
BB시트의 F12값이 AA시트의 J9~J365와 (앞)부분 일치하면 AA시트의 Q9~Q365 값을 출력하라..
와 같은 수식을 여기서 도움받아 잘 쓰고 있는데요.
여기에 한가지 조건을 더 추가하고 싶습니다.
BB시트의 F12값이 AA시트의 J9~J365와 부분 일치하면 AA시트의 Q9~Q365 값을 출력하고,
BB시트의 F12값이 CC시트의 B9~B100과 부분 일치하면 CC시트의 C9~C100 값을 출력하라.
if는 아닌 것 같고 어떻게 써야할지 모르겠네요.
수식 도움 주시면 너무나 감사하겠습니다.
=IF(NOT(ISERROR(SEARCH(BB!F12,AA!J9:J365))),AA!Q9:Q365,IF(NOT(ISERROR(SEARCH(BB!F12,CC!B9:B100))),CC!C9:C100,""))
현재 제 상황에 맞게 다시 수식 넣어봤거든요.
=IF(NOT(ISERROR(SEARCH($F$12,'2-2 MusicChart'!$J$9:$J$365))),'2-2 MusicChart'!$Q$9:$Q$365,IF(NOT(ISERROR(SEARCH($F$12,'2-3 MusicChartPrev'!$D$4:$D$262))),'2-3 MusicChartPrev'!$H$4:$H$262,""))
------
+추가
=IF(NOT(ISERROR(LOOKUP(1E+100,SEARCH($F$12,'2-2 MusicChart'!$J$9:$J$365)))),'2-2 MusicChart'!$Q$9:$Q$365,IF(NOT(ISERROR(LOOKUP(1E+100,SEARCH($F$12,'2-3 MusicChartPrev'!$D$4:$D$262)))),'2-3 MusicChartPrev'!$H$4:$H$262,""))
기존에 있던 LOOKUP을 넣어서 이렇게 해봤는데도 올바른 값이 뜨지않네요 흑흑
저런식으로 일치하는 조건(f12로 musicchart의 각 셀을 search했을 때 에러가 안나면)이 나오면 순차적으로 데이터를 나열해서 보여줘요.
만약 첫번째 조건이 false라면, 두번째 조건(f12로 musicchartprev의 각 셀 search)을 비교해봐서 데이터를 보여주죠 (이건 C100까지만, 101셀부터 NA에러가 뜨는 걸 막으려면 IFERROR 함수로 한번 더 감싸면 됩니다.)
만약 중간 공백 뜨는게 싫다면, IFERROR 함수로 한번 감싸서 NA에러를 청소하고, sort함수로 수식을 한번 더 묶어서 공백을 아래로 밀어내거나 filter함수로 공백을 제거해버리면 됩니다.
sort를 쓰면 순서가 바뀌기 때문에 순서에 민감하다면 못쓰고,
filter는 변수에 배열을 저장하는 기능이 엑셀함수에 없다보니, 필터링을 위해 같은 연산을 2번 반복한다는 소소한 단점이 있죠.
sort버전
=SORT(IFERROR(IF(NOT(ISERROR(SEARCH($F$12,'2-2 MusicChart'!$J$9:$J$365))),'2-2 MusicChart'!$Q$9:$Q$365,IF(NOT(ISERROR(SEARCH($F$12,'2-3 MusicChartPrev'!$D$4:$D$262))),'2-3 MusicChartPrev'!$H$4:$H$262,"")),""),,-1)
filter버전
=FILTER(IFERROR(IF(NOT(ISERROR(SEARCH($F$12,'2-2 MusicChart'!$J$9:$J$365))),'2-2 MusicChart'!$Q$9:$Q$365,IF(NOT(ISERROR(SEARCH($F$12,'2-3 MusicChartPrev'!$D$4:$D$262))),'2-3 MusicChartPrev'!$H$4:$H$262,"")),""),IFERROR(IF(NOT(ISERROR(SEARCH($F$12,'2-2 MusicChart'!$J$9:$J$365))),'2-2 MusicChart'!$Q$9:$Q$365,IF(NOT(ISERROR(SEARCH($F$12,'2-3 MusicChartPrev'!$D$4:$D$262))),'2-3 MusicChartPrev'!$H$4:$H$262,"")),"")<>"")
만약 데이터를 출력할 셀 공간이 충분하지 않다면 spill 에러 나요.