각 열마다 X의 연속갯수를 세는 함수식을 만들었는데 기존 함수식이 빈칸을 같이 계산해버려서 결과값이 잘못 나온걸 챗GPT로 바로잡았는데 문제는 그렇게 나온 결과물을 기반으로 다른 탭에서도 또다른 주제로 결과값을 도출하고 있었는데 다른 탭들 결과가 모두 에러가 떠버리더군요 원인이 뭘까요...
바로잡아주실분 계실까요..ㅠㅠ
기존함수식
=LET(
base, 일자별변환!A:P,
last, LOOKUP(2, 1/(INDEX(base,,1)<>""), ROW(INDEX(base,,1))),
d, INDEX(base,2,1):INDEX(base,last,1),
src, INDEX(base,2,2):INDEX(base,last,16),
maxN,
MAX(
BYCOL(src,
LAMBDA(r,
LET(c, N(r="X"),
ROWS(TEXTSPLIT(CONCAT(c), , 0, 1))
)
)
)
),
OneCol,
LAMBDA(r,idx,
LET(
c, N(r="X"),
res,
LEN(TEXTSPLIT(CONCAT(c), , 0, 1)) &
TEXT(
FILTER(d, BITAND(SCAN(0, c, LAMBDA(a,v, v & (1 - LEFT(a)) * v)), 1)),
" (yyyy-mm-dd)"
) &
" (" & idx & ")",
IF(maxN>ROWS(res),
VSTACK(res, MAKEARRAY(maxN-ROWS(res), 1, LAMBDA(x,y,""))),
res
)
)
),
REDUCE(
"",
SEQUENCE(, COLUMNS(src)),
LAMBDA(acc,i,
LET(col, OneCol(INDEX(src,,i), i),
IF(i=1, col, HSTACK(acc, col))
)
)
)
)
새 함수식
=LET(
base, 일자별변환!$A:$P,
last, LOOKUP(2, 1/(INDEX(base,,1)<>""), ROW(INDEX(base,,1))),
d, INDEX(base,2,1):INDEX(base,last,1),
src, INDEX(base,2,2):INDEX(base,last,16),
OneCol,
LAMBDA(r,idx,
LET(
vals, FILTER(r, r<>""),
dates, FILTER(d, r<>""),
c, N(vals="X"),
grp, SCAN(0, c, LAMBDA(a,v, IF(v=1, a, a+1))),
u, UNIQUE(FILTER(grp, c=1)),
MAP(u, LAMBDA(g,
LET(
pos, FILTER(SEQUENCE(ROWS(c)), (grp=g)*(c=1)),
cnt, ROWS(pos),
sd, INDEX(dates, INDEX(pos,1)),
cnt & "개 (" & TEXT(sd,"yyyy-mm-dd") & ") (" & idx & ")"
)
))
)
),
REDUCE(
"",
SEQUENCE(, COLUMNS(src)),
LAMBDA(acc,i,
LET(col, OneCol(INDEX(src,,i), i),
IF(i=1, col, HSTACK(acc, col))
)
)
)
)
고칠곳..
(1) X숫자변환! #N/A값은 ""로 만드세요
(2)num의 값은 "("앞이 아니라.. "개"앞.. num,--TEXTBEFORE(txt,"개"),
X숫자변환 묶음은 위 두개만 고치면 되네요..