목록Row (35)
무지개타고
엑셀 함수 중에 WorkDay 라고 있다. 주말 및 공휴일 목록을 반영해 날짜를 구해주는 함수인데, 문제는 주말인 토요일과 휴일인 일요일은 무조건 반영한다는 것. 그러나 현실에서는 토요일, 일요일 이라도 작업을 해야 하는 경우가 있다는 것. 때문에 WorkDay 함수에 대안을 찾아야 한다는 것. 임의로 만든 제외목록을 반영해 가산일을 구해 보자. 특정일에 가산일수를 더해 가산일을 구하는데 단순히 더한 날짜, WorkDay 함수에 제외목록을 반영해 구한 날짜, 별도 수식을 만들어 제외목록을 반영해 구한 날짜 각각을 구하면 아래 처럼 된다. g4 셀 (일반) =G2+G3 g5 셀 (WorkDay) =WORKDAY(G2,G3,$A$3:$A$10) g6 셀 (제외날짜) =INDEX(G2+ROW($1:$365),..
하트 날리기! 방식은... 참가자 {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를 동시에 눌러야 한다. o3 셀 =IF(ISERROR(MATCH(0,COUNTIF(O$2:O2,$C$2:$C$17),0)),"",INDEX($C$2:$C$17,MATCH(0,COUNTIF(O$2:O2,$C$2:$C$17),0))) 이제 위에 소개된 수식..
오튜에 올라온 질문인데.. 두 개의 필드로 구성된 목록을 정리하는게 목적이다. 필드가 하나 일때 보다는 조금 복잡하다. 이는 고급필터 또는 피벗테이블 기능으로 간편하게 구할 수 있다. 그러나 질문자는 기능이 아닌 수식으로 처리하길 바라는데... 자료가 어낙에나 많아 수식으로는 한계가 있는 질문이었다. 이쯤에서 몇번 소개한 구글닥스의 Unique 함수를 보자. 이름 그대로 Unique 함수는 목록 정리용으로 아주 딱이다. 너무나 유용한 함수이기에, 엑셀로 복제해 반영해줬으면 정말 좋겠다. 앞서 질문을 엑셀에서 수식으로 처리하려면 삽질 좀 많이 해야 한다. 위에서 봤듯이 구글닥스에서는 Unique 함수 딱 하나로 끝나는데 말이다. d3 셀 (구분) =IF(SUM(1*(FREQUENCY(MATCH($A$2:$..
오튜에 이동평균 구하기와 거의 유사한 질문이 올라왔는데, 각각의 순번에서 범위 만큼을 순차적으로 합산해 이동합을 원한다는 것. 일반적인 이동평균/합과 조금 다른 점이라면... 범위가 고정된 값이 아닌, 유동적으로 변할 때 적용 가능한 수식이랄까. 더불어 값이 채워져 있지 않아도 이동합을 계산할것. (이 조건이 필요한 경우가 있을까?) 어쨌든... 이동합을 구해봤다. c3 셀 (이동합) =IF($C$1+ROWS($B$3:$B$12)>=ROW($B2),SUM(OFFSET($B3,-MIN(ROWS($B$3:$B3),$C$1)+1,0,MIN(ROWS($B$3:$B3),$C$1),1)),"")
더하기 연재가 스무번까지 올 줄이야... 아무튼 더하기는 계속 된다. 지난 번에 다룬 오튜 질문이 좀더 복잡했다. 그래서 이를 다조건 행렬에 반영... 그리하여 나온 결과는... g2 셀 (판정) =INDEX($B$14:$D$14,MATCH(SUM(10^(ROW(INDIRECT("1:"&COUNTA($B$14:$C$14)))*(MMULT(1*(T(OFFSET($A$7,0,MMULT(COLUMN($B$7:$E$7)^0,1*($B2:$F2>=TRANSPOSE($B$8:$E$12)))+1))=TRANSPOSE($B$14:$C$14)),ROW($A$8:$A$12)^0)>=TRANSPOSE($B$15:$C$15)))),{11,101,2},0)) 물론 배열수식이고... 구글 크롬에서도 수식이 제대로 보여지지 않는다..
오튜에 흥미로운 질문이 올라왔는데... 언제나처럼 내 맘대로 정리를 해봤다. 질문은 대충 그랬다. 항목별 제시된 조건에 따라 각각의 점수를 구분짓고, 이를 종합해 최종 판정을 하겠다는 것. 그런데 제시된 조건이 많이 까탈스럽다. 그나마 부등호가 "미만"과 "이상"으로 일정하다는게 다행이랄까... 음... 어쩐담? 땡기긴 땡기는데... 그래서 조금 변형된 다조건 행렬을 구성했다. 제시된 조건을 "미만"이 기준값이 되게 먼저 입력하고, 행렬틀에 맞춰 빈 자리는 앞 조건에 제시된 값으로 채우고, 맨 우측 범위(최대값)가 지정되지 않은 경우는 임의로 10^100 을 부여했다. 설마 점수가 10^100을 초과한다면... 엑셀 도움말에 따르면 엑셀에서 최대로 사용할 수 있는 값은 9E+308이니 이를 적용하면 되겠..