그림과 같이 A열에 있는 O또는 X의 연속갯수를 아래에서 위로 올라가면서 카운트하고 싶은데
함수가 계속 에러가 나오네요 정확하게 적용할 수 있는 함수가 있을까요 빈칸이 있어서 에러가 뜨는건지
아니면 VBA를 만들어야 하나요?
그림과 같이 A열에 있는 O또는 X의 연속갯수를 아래에서 위로 올라가면서 카운트하고 싶은데
함수가 계속 에러가 나오네요 정확하게 적용할 수 있는 함수가 있을까요 빈칸이 있어서 에러가 뜨는건지
아니면 VBA를 만들어야 하나요?
안녕하세요~
이렇게 해보세요.
(질문에 3이 한번 더 들어간 거 같네요.)
C6=LET(r, A6:A30, p, VSTACK("", DROP(r,-1)), ch, r<>p, seg, SCAN(0, ch, LAMBDA(a,x, a+x)), first, ch*(r<>""), s, FILTER(seg, first), MAP(s, LAMBDA(k, SUM(--(seg=k)*(r<>"")))) )아~빈칸을 무시하고 카운트하게 할 순없을까요? 그렇게 하면 1121이 아니라 131 돼긴해요^^;;
넵!
질문자님의 의도를 이해했습니다~
C6=LET(r, A6:INDEX(A:A, LOOKUP(2,1/(A:A<>""), ROW(A:A))), a, FILTER(r, r<>""), p, VSTACK("", DROP(a,-1)), ch, a<>p, idx, FILTER(SEQUENCE(ROWS(a)), ch), nxt, VSTACK(DROP(idx,1), ROWS(a)+1), HSTACK(FILTER(a, ch), nxt-idx) )
아래서 위로 올라가면서... 라는게 예시결과가 좀 이상하긴 한데,
보여주신 예시로만 하면, 빈칸을 무시하고 결합한 상태에서 연속되는 기호 갯수인 것 같습니다.
빈칸무시하는 수식이라 범위를 더 크게해도 상관없습니다.
=LEN( TEXTSPLIT( CONCAT( SCAN(,TOCOL(A1:A100,3),LAMBDA(b,c,IF(RIGHT(b,1)<>c,","&c,c))) ) ,,",") )
두분다 수식을 입력하면 이런창이 떠요..ㅠㅠ
2024버전에 모두 있는 함수인데 ...
=LET(rngX,FILTER(B2:B26,TRIM(B2:B26)<>""), xRws,ROWS(rngX),
gIdx,SCAN(1,SEQUENCE(xRws),LAMBDA(xAcc,iseq, xAcc+IF(iseq=1,0,--(INDEX(rngX,iseq)<>INDEX(rngX,iseq-1))))), xUniqs,UNIQUE(gIdx),
MAP(xUniqs,LAMBDA(iuniq, SUM(--(gIdx=iuniq)))))
일단 집에서 천천히 한번 해보겠습니다 두분 다 모두 감사드립니다~
아 직장 엑셀버젼이 구버전이라 그런가 봐요 집에서 해보겠습니다
수메리안님 수식에 frequency적용해봤습니다.
=LET(r, TRIMRANGE($A$6:$A$1000000,3), a,FILTER(r,r<>""), p,VSTACK("",DROP(a,-1)), data,SCAN(0,(a<>p)*1,SUM), DROP(FREQUENCY(data,SEQUENCE(MAX(data))),-1) )
=IFERROR(1/(1/LEN(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CONCAT($A$1:$A$1001),"XO","X,O"),"OX","O,X"),",",REPT(" ",100)),100*ROW(A1)-99,100)))),"")