목록Program (114)
무지개타고
익히 해오던 수식 갖고 앞뒤만 조금 조정해주면 되는 것이었는데 이를 못해서 십수년을 숙제로 담고 살았다. 에휴... 선입선출(FIFO)을 살펴보자. 단가 = 금액 ÷ 수량 인데, 입고량과 출고량이 딱딱 맞으면 좋으련만 현실은 그게 아닌지라. f3 셀(금액1) =IF(OR($E3=0,SUM($B$3:$B3)TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3)=TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),MMULT(1*(ROW($B$3:$B3)>=TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),SUM($E$3:$E3))-IF(SUM($E$3:$E3)>MMULT(1*(ROW($B$3:$B3)>TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),MMUL..
명절이 다가왔다. 김도 구웠고, 만두도 빚었고, 다음엔 고구마전을 만들어야 한단다. 차례상에 이것저것 올려놓으려니 덩달아 바빠지는데... 삼겹살에 콜라로 어찌 않되나??? 아래와 같은 판매목록이 있다고 할 때, 고객ID A001, A003은 수량이 부족했는지 추가로 구매해 갔다고 하고 집계를 해보자. 보통은 품목별로 집계하는데 빅데이터 시대(?)에 걸맞게 ID별로도 집계해 보자. 여기서 유일ID 빈도는 중복된 ID를 하나로 처리해 빈도를 구하겠다는 것. f3 셀 (ID*품목별 수량) =SUMPRODUCT(($A$3:$A$22=$E3)*($B$3:$B$22=F$2)*($C$3:$C$22)) f11 셀 (유일ID 빈도) =COUNTIF(F$3:F$10,">0") 그리고 이를 이용해 교차품목별 유일ID 빈도를..
엑셀 함수 중에 WorkDay 라고 있다. 주말 및 공휴일 목록을 반영해 날짜를 구해주는 함수인데, 문제는 주말인 토요일과 휴일인 일요일은 무조건 반영한다는 것. 그러나 현실에서는 토요일, 일요일 이라도 작업을 해야 하는 경우가 있다는 것. 때문에 WorkDay 함수에 대안을 찾아야 한다는 것. 임의로 만든 제외목록을 반영해 가산일을 구해 보자. 특정일에 가산일수를 더해 가산일을 구하는데 단순히 더한 날짜, WorkDay 함수에 제외목록을 반영해 구한 날짜, 별도 수식을 만들어 제외목록을 반영해 구한 날짜 각각을 구하면 아래 처럼 된다. g4 셀 (일반) =G2+G3 g5 셀 (WorkDay) =WORKDAY(G2,G3,$A$3:$A$10) g6 셀 (제외날짜) =INDEX(G2+ROW($1:$365),..
적절한 타협은 소통이 아니라는, 불통이 원칙이라는, 시쳇말로 말인지 막걸린지... 부정선거 최대수혜자인 주제에 말이다. 배분조건을 만족할때 우측으로 나열하는 수식이다. f2 셀 =IF((ROUNDUP((COUNTIF($A$2:$A2,$C$3)+1)/$D$3,0)-($A2=$C$3)*(MOD(COUNTIF($A$2:$A2,$C$3),$D$3)=0))=COLUMN(A1),$A2,"")
년말쯤 되면 신년일출산행 준비하고 그랬지만... 설악산 아니 간지도 꽤 됐군. 저 날 엄청 추웠는데... 아무튼... 신년일출산행을 재끼는 대신 맛난거나 먹어볼까나? 일전에 한 번 다뤄본 자재입출고 관리와 비슷한 유형으로, 이번에는 자료 구성 방식을 조금 달리해 값을 구해본다. 위와 같이 수량과 세트&메뉴&상품 구성이 되어있을 때 상품별 수량은? 물론 배열수식이고 Ctrl+Shift+Enter 키를 동시에 눌러야 한다. c29 셀 =SUM((TRANSPOSE($B$4:$B$8)=$B$12:$B$16)*MMULT(1*ISNUMBER(MATCH($C$12:$D$16,IF(MMULT(1*($C$20:$D$25=$B29),TRANSPOSE(COLUMN($C$20:$D$25)^0))>0,$B$20:$B$25),0..
하트 날리기! 방식은... 참가자 {a,b,c,d,e}는 대상자 {가,나,다,라,마,바}를 향해 하트를 날릴 수 있다. 참가자는 한 번에 다수의 대상자를 향해 하트를 날릴 수 있다. 이때 가중치는 하트 개수에 반비례한다. 더불어 참가자는 여러 번 하트를 날릴 수 있다. 단 동일 참가자가 최종적으로 날린 하트만 인정된다. 즉 앞서 날린 하트는 무시된다. 그럼 하트를 날려볼까~ 참가자 a,c는 다회에 걸쳐 하트를 날렸다. 그 중 a는 최종적으로 포기? 그리고 b,d는 둘 이상의 대상자에게 하트를 날렸고, 이에반해 c는 대상자 모두에게 하트를 날렸다. 때문에 c가 보낸 하트의 가중치는 1/n으로 상대적으로 낮게 반영된다. 그에반해 e는 한 대상자에게만 하트를 날려 가중치는 1이다. 앞서 날린 하트를 구분짓기 ..
목록이 있다. 개수만큼 항목을 나열하려는데 순차적으로 나열할지, 무작위로 나열할지 당신의 선택은? 아래 수식은 배열수식이므로 입력시 Ctrl+Shift+Enter를 동시에 누를 것. d2 셀 (순차나열) =IF(SUM($B$2:$B$7)>=ROWS(D$1:D1),INDEX($A$2:$A$7,MATCH(0,MMULT(1*(ROW($A$2:$A$7)>TRANSPOSE(ROW($A$2:$A$7))),$B$2:$B$7-COUNTIF(D$1:D1,$A$2:$A$7)),1)),"") e2 셀 (랜덤나열) =IF(SUM($B$2:$B$7)>=ROWS(E$1:E1),INDEX($A$2:$A$7,MATCH(RAND()*(SUM($B$2:$B$7)-ROWS(E$1:E1)+1),MMULT(1*(ROW($A$2:$A$7)>T..
주어진 값에서 무작위 추출할 일이 있다면 어떻게? 임의 추출시 고려해야 될 게 한 번 추출된 값이 중복 추출되는 경우가 없어야 한다는 것. 쓸 일이 거의 없어서 생각해보지 않았는데 심심해서 한 번 구해봤다. 첨부한 수식은 배열수식이라 입력시 Ctrl+Shift+Enter를 동시에 눌러야 한다. 주어진 값에서 무작위로 추출하는 경우 b2 셀(임의추출) =SMALL(IF(1-COUNTIF(B$1:B1,$A$2:$A$22),$A$2:$A$22),ROUNDUP(RAND()*SUM(1-COUNTIF(B$1:B1,$A$2:$A$22)),0)) 특정 구간내에 값에서 무작위로 추출하는 경우 c2 셀(구간조건 임의추출) =SMALL(IF(($A$2:$A$22>=-3)*($A$2:$A$22=-3)*($A$2:$A$22