물류회사에 있다보니 물류계산을 하는일이 있는데
동일한 작업 시간소요가 너무 오래 걸려서 단순 수식으로 만들고 싶은데 너무 어렵네요...
첨부파일에도 있는 내용이지만 같이 올려봅니다..
안녕하세요~이렇게 해보세요.1. M:S 표 등록2. 보조열 P:S
[배송비채움] P2=LET(x,$K3, IF(x<>"", x, LOOKUP(2,1/($K$3:K3<>""), $K$3:K3))) [배송키] Q2=TEXT($E3,"yy-mm-dd")&"|"&$P3 [업체키] R2=LET(x,$F3, TRIM(SUBSTITUTE(CLEAN(x),CHAR(160)," "))) [업체배송키] S2=$Q3&"|"&$R3
[거리당배송비]
M2=LET( firstRow, ROW(INDEX([업체배송키],1)), i, ROW()-firstRow+1, fee, [@배송비채움], sk, [@배송키], ok, [@업체배송키], dist, INDEX(표1_3[거리(km)], i), skR, [배송키], okR, [업체배송키], distR,표1_3[거리(km)], okFirstVec, --(ROW(okR)=firstRow + MATCH(okR, okR, 0) - 1), grpDistU, SUMPRODUCT((skR=sk)*okFirstVec*distR), grpOkCnt, SUMPRODUCT((skR=sk)*okFirstVec), isFirst, COUNTIF(INDEX(okR,1):[@업체배송키], ok)=1, IF(fee=0, 0, IF(isFirst, IF(grpOkCnt>1, IF(grpDistU=0,0, fee * dist / grpDistU), IF(dist=0,0, fee / dist) ), "" ) ) )
[수량별배송비]
N2=LET( firstRow, ROW(INDEX([배송키],1)), i, ROW()-firstRow+1, fee, [@배송비채움], sk, [@배송키], qty, INDEX(표1_3[수량], i), skR, [배송키], qtyR, 표1_3[수량], totQty, SUMPRODUCT((skR=sk)*qtyR), IF(fee=0, 0, IF(totQty=0, 0, fee / totQty) ) )
[총수량별배송비]
O2=LET( firstRow, ROW(INDEX([배송키],1)), i, ROW()-firstRow+1, unitFee, [@수량별배송비], qty, INDEX(표1_3[수량], i), IF(unitFee=0, 0, unitFee * qty) )
안녕하세요. 답변 감사드립니다
해주시 코드로 작성을 해봤는데, 배송비가 있는 부분은 수식이 활성화되는데
그 외의 부분은 에러가 발생하네요 ㅠㅠ 왜그럴까요?
표3 T열에 No 열을 하나 더 추가해서표1_3의 D열 No를 그대로 복사해서 가져옵니다.
이전 수식에서의 Index 방식(행 위치 의존 방식)을 버리고[No]로 100% 정확히 매칭하도록 했습니다.
거리(km)를 불안정한 "행 위치"가 아니라 "고유키"로 매칭하도록 해서표1_3과 표3가 정확히 매칭되도록 했습니다.
M3=LET( fee, [@배송비채움], sk, [@배송키], ok, [@업체배송키], no, [@No], dist, XLOOKUP(no, 표1_3[No], 표1_3[거리(km)], 0), distR, XLOOKUP([No], 표1_3[No], 표1_3[거리(km)], 0), skR, [배송키], okR, [업체배송키], pos, ROW(okR)-ROW(INDEX(okR,1))+1, okFirstVec, --(pos = MATCH(okR, okR, 0)), grpDistU, SUMPRODUCT((skR=sk)*okFirstVec*distR), grpOkCnt, SUMPRODUCT((skR=sk)*okFirstVec), isFirst, COUNTIF(INDEX(okR,1):[@업체배송키], ok)=1, IF(fee=0, 0, IF(isFirst, IF(grpOkCnt>1, IF(grpDistU=0,0, fee * dist / grpDistU), IF(dist=0,0, fee / dist) ), "" ) ) )
N3=LET( fee, [@배송비채움], sk, [@배송키], no, [@No], qty, XLOOKUP(no, 표1_3[No], 표1_3[수량], 0), qtyR, XLOOKUP([No], 표1_3[No], 표1_3[수량], 0), skR, [배송키], totQty, SUMPRODUCT((skR=sk)*qtyR), IF(fee=0, 0, IF(totQty=0, 0, fee / totQty) ) )
O3=LET( no, [@No], unit, [@수량별배송비], qty, XLOOKUP(no, 표1_3[No], 표1_3[수량], 0), IF(unit=0, 0, unit*qty) )
대상 URL을 입력하세요
또는 기존의 콘텐츠에 링크
안녕하세요~
이렇게 해보세요.
1. M:S 표 등록
2. 보조열 P:S
[거리당배송비]
M2=LET( firstRow, ROW(INDEX([업체배송키],1)), i, ROW()-firstRow+1, fee, [@배송비채움], sk, [@배송키], ok, [@업체배송키], dist, INDEX(표1_3[거리(km)], i), skR, [배송키], okR, [업체배송키], distR,표1_3[거리(km)], okFirstVec, --(ROW(okR)=firstRow + MATCH(okR, okR, 0) - 1), grpDistU, SUMPRODUCT((skR=sk)*okFirstVec*distR), grpOkCnt, SUMPRODUCT((skR=sk)*okFirstVec), isFirst, COUNTIF(INDEX(okR,1):[@업체배송키], ok)=1, IF(fee=0, 0, IF(isFirst, IF(grpOkCnt>1, IF(grpDistU=0,0, fee * dist / grpDistU), IF(dist=0,0, fee / dist) ), "" ) ) )[수량별배송비]
N2=LET( firstRow, ROW(INDEX([배송키],1)), i, ROW()-firstRow+1, fee, [@배송비채움], sk, [@배송키], qty, INDEX(표1_3[수량], i), skR, [배송키], qtyR, 표1_3[수량], totQty, SUMPRODUCT((skR=sk)*qtyR), IF(fee=0, 0, IF(totQty=0, 0, fee / totQty) ) )[총수량별배송비]
안녕하세요. 답변 감사드립니다
해주시 코드로 작성을 해봤는데, 배송비가 있는 부분은 수식이 활성화되는데
그 외의 부분은 에러가 발생하네요 ㅠㅠ 왜그럴까요?
표3 T열에 No 열을 하나 더 추가해서
표1_3의 D열 No를 그대로 복사해서 가져옵니다.
이전 수식에서의 Index 방식(행 위치 의존 방식)을 버리고
[No]로 100% 정확히 매칭하도록 했습니다.
거리(km)를
불안정한 "행 위치"가 아니라 "고유키"로 매칭하도록 해서
표1_3과 표3가 정확히 매칭되도록 했습니다.
[거리당배송비]
M3=LET( fee, [@배송비채움], sk, [@배송키], ok, [@업체배송키], no, [@No], dist, XLOOKUP(no, 표1_3[No], 표1_3[거리(km)], 0), distR, XLOOKUP([No], 표1_3[No], 표1_3[거리(km)], 0), skR, [배송키], okR, [업체배송키], pos, ROW(okR)-ROW(INDEX(okR,1))+1, okFirstVec, --(pos = MATCH(okR, okR, 0)), grpDistU, SUMPRODUCT((skR=sk)*okFirstVec*distR), grpOkCnt, SUMPRODUCT((skR=sk)*okFirstVec), isFirst, COUNTIF(INDEX(okR,1):[@업체배송키], ok)=1, IF(fee=0, 0, IF(isFirst, IF(grpOkCnt>1, IF(grpDistU=0,0, fee * dist / grpDistU), IF(dist=0,0, fee / dist) ), "" ) ) )[수량별배송비]
N3=LET( fee, [@배송비채움], sk, [@배송키], no, [@No], qty, XLOOKUP(no, 표1_3[No], 표1_3[수량], 0), qtyR, XLOOKUP([No], 표1_3[No], 표1_3[수량], 0), skR, [배송키], totQty, SUMPRODUCT((skR=sk)*qtyR), IF(fee=0, 0, IF(totQty=0, 0, fee / totQty) ) )[총수량별배송비]
