2015-1회-1급 액세스 E형 p.217 문제2-2
=DLookUp("거래처명","거래처","거래처코드=txt거래처코드")
질문1) 거래처 테이블이 들어간 것은, 문제에서 거래처 테이블을 이용하라고 했기 때문이라고 알고 있습니다.
문제에 명시된 것이 아니라면 폼의 레코드원본을 사용하는 것이 맞죠?
질문2) 보통 조건을 표시할 때, "거래처코드='" & txt거래처코드 & "'" 이렇게 하는데,
여기에서는 이렇게 사용되지 않아서요. 예전에 얼핏 본 거 같은데
정확히 모르겠어서, 어느 경우에 조건을 저렇게 작성해도 되는 것인가요?
--------------------------------------------------------------------------------------------------------
2015-1회-1급 액세스 E형 p.218 문제3-2
질문3) 저는 날짜라고 생각해서, #을 사용해서 썼는데, 정답에는 숫자처럼 작성했더라구요.
월 이면 분명 날짜인데, 사용을 어떻게 구분해야 할까요?
제가 작성한 답
Filter = "month([납품일자])=#" & txt월 & "#"
FilterOn = True
정답
Filter = "month([납품일자])=" & txt월
FilterOn = True
--------------------------------------------------------------------------------------------------------
2014-1회-1급 엑셀 E형 p.193 문제2-2
질문4) 이해가 안가서요... 질문남깁니다.
문제를 보면, 부담금이 텍스트면 텍스트를 그대로 표시하고 그렇지않으면 약제비총액*부담으로 계산.
이렇게 나와있습니다.
그런데 정답에 보면 I3를 앞에도 곱했더라구요. 이상하지 않나요?
그리고 +1을 한것도 무슨 의미인지 모르겠습니다.
제가 작성한 답에 value에는 그대로를 적었고, value_if_error에는 I3를 곱한값을 적었습니다.
그랬더니 계산이 안되네요 ,,,아..멘붕입니다.
제가 작성한 답
=IFERROR(VLOOKUP(I3,$A$34:$A$37,MATCH(G3,$B$33:$D$33,1)),I3*VLOOKUP(I3,$A$34:$A$37,MATCH(G3,$B$33:$D$33,1)))
정답
=IFERROR(I3*VLOOKUP(I3,$A$34:$A$37,MATCH(G3,$B$33:$D$33,1)+1),I3*VLOOKUP(I3,$A$34:$A$37,MATCH(G3,$B$33:$D$33,1)+1))
1 네 맞습니다.
2 d가 들어가는 도메인 함수와 runsql 문에서는 컨트롤 분리를 하지 않아도 되므로 & 연산자를 사용하지 않은 것입니다.
3.month([납품일자]) 에서 나온 값이 숫자이고 txt월에 입력된 값이 숫자이기 때문입니다.
4.
vlookup 함수에서는 범위를 b열부터 지정하였고, match 함수에서는 범위를 c열부터 지정하였습니다.
vlookup 함수의 두번째 열에 있는 값을 넣으려면 match 함수의 결과값에 1을 더해줘서 열의 위치를 맞춰야 하기때문에 +1을 한 것입니다.
IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))
중
VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 에서 vlookup 의 범위 a34:d37 과 macth의 범위 b33:d33 이 다르기 때문입니다. 열이 틀려서 인 것이죠.
vlookup의 범위는 a열부터 4열 이고 match의 범위는 b열 부터 3열 이므로 match에서 나온 결과를 vlookup의 열로 찾게 되면 한줄씩 당겨져서 표시가 됩니다.
그러므로 vlookup의 결과와 같게 표시하기 위해서 +1 을 하는 것입니다.
IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))
식이나 식 자체의 값이 오류가 나면 오류값을 표시합니다.
I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1)
은 식이 오류가 아니면 이 식을 그대로 계산하여 표시하고
이 값이 오류가 나면
VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1
의 값을 반환하는 것이죠.
문자값에 숫자값을 곱하게 되면 오류가 납니다. 그렇게 오류인지 아닌지 확인 하는 것입니다.
좋은 하루 되세요.
-
*2016-01-08 13:23:09
1 네 맞습니다.
2 d가 들어가는 도메인 함수와 runsql 문에서는 컨트롤 분리를 하지 않아도 되므로 & 연산자를 사용하지 않은 것입니다.
3.month([납품일자]) 에서 나온 값이 숫자이고 txt월에 입력된 값이 숫자이기 때문입니다.
4.
vlookup 함수에서는 범위를 b열부터 지정하였고, match 함수에서는 범위를 c열부터 지정하였습니다.
vlookup 함수의 두번째 열에 있는 값을 넣으려면 match 함수의 결과값에 1을 더해줘서 열의 위치를 맞춰야 하기때문에 +1을 한 것입니다.
IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))
중
VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 에서 vlookup 의 범위 a34:d37 과 macth의 범위 b33:d33 이 다르기 때문입니다. 열이 틀려서 인 것이죠.
vlookup의 범위는 a열부터 4열 이고 match의 범위는 b열 부터 3열 이므로 match에서 나온 결과를 vlookup의 열로 찾게 되면 한줄씩 당겨져서 표시가 됩니다.
그러므로 vlookup의 결과와 같게 표시하기 위해서 +1 을 하는 것입니다.
IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))
식이나 식 자체의 값이 오류가 나면 오류값을 표시합니다.
I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1)
은 식이 오류가 아니면 이 식을 그대로 계산하여 표시하고
이 값이 오류가 나면
VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1
의 값을 반환하는 것이죠.
문자값에 숫자값을 곱하게 되면 오류가 납니다. 그렇게 오류인지 아닌지 확인 하는 것입니다.
좋은 하루 되세요.