CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·MaClien ·일본산당 ·방탄소년당 ·자전거당 ·개발한당 ·이륜차당 ·안드로메당 ·소시당 ·나스당 ·골프당 ·디아블로당 ·육아당 ·AI당 ·가상화폐당 ·영화본당 ·클다방 ·리눅서당 ·소셜게임한당 ·걸그룹당 ·젬워한당 ·노젓는당 ·사과시계당 ·야구당 ·패스오브엑자일당 ·IoT당 ·창업한당 ·캠핑간당 ·패셔니앙 ·라즈베리파이당 ·맛있겠당 ·물고기당 ·노키앙 ·바다건너당 ·여행을떠난당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·도시어부당 ·FM한당 ·포뮬러당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·키보드당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·MTG한당 ·소리당 ·적는당 ·방송한당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

아무거나질문

컴퓨터 구글스프레드시트) 열마다 흩어져 있는 값을 불러오는 법? 15

2023-07-11 13:32:48 수정일 : 2023-07-11 13:36:41 58.♡.0.209
carg

질문의 요지

여러 열에 랜덤하게언급된 기관명을 찾아, 그 기관명에 해당되는 상세사유를 불러오는 방법이 있을까요? 



https://docs.google.com/spreadsheets/d/1urTf_250qY-GuYEbDF-lOLMXk3MG8gpVMxXsy2-B-6w/edit#gid=1755696079


샘플 파일은 위 링크에 있습니다  

구글설문을 통해, 1차부터 10차 순서대로 기관명과 관련 내용을 받고 있는데

이걸 하나로 모아서, 각 기관별 리스트를 만드는게 취지입니다.      


??? ??.png



A기관이 1차에 언급될 수 도있고, 7차에 언급될 수도 있고...   랜덤으로


U2셀

=BYROW($B$2:$S,lambda(a,countif(a,U1))) 

A기관이 몇번 언급됐는지? 보려는 목적입니다. (1 이상 되면 응답자 실수라서 조건부 서식으로 표기할 예정) 


W2셀

=BYROW($B$2:$S,lambda(a,xlookup(U1,a,a))) 

A기관이 언급 되었다면 A기관이라고 명칭을 불러오라는 의미 (#N/A 값에 iferror 이 안먹혀서 못 없애는 중 ㅜㅜ)


주된질문

1. 일시: V2, AA2, AG2, AL2 등... (분홍색 표기)

2. 상세내용: X2, AC2, AI2 등... (노랑색 표기)


에 어떤 수식을 넣으면 불러올 수 있을까요?    

 

carg 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [15]
Myayu
IP 112.♡.32.181
07-11 2023-07-11 15:12:30
·
=BYROW($B$2:$S,lambda(a,countif(a,U1)))
이 수식은 문제가 있습니다.
원래부터 상세내용까지 동시에 체크하려는 것이 목적이라면 몰라도, 기관명 안에서만 카운트하려는 것이라면 오작동의 우려가 있네요.

=BYROW($B$2:$S,lambda(a,countif(MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,""))),U1)))

이렇게 고치는 것이 좋을 듯 합니다.



그리고 NA 걸러내는 함수로는 IFNA 가 있습니다. 이거 쓰세요.

동시에, 기관명을 불러올 때 상세내용을 걸러내려면, 위와 같은 방식으로

=BYROW($B$2:$S,LAMBDA(a,LET(rdata,MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,""))),IFNA(XLOOKUP(U1,rdata,rdata),"-"))))

이러면 될 것 같고..


상세내용은
=BYROW($B$2:$S,LAMBDA(a,LET(data1,HSTACK("",MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,"")))),data2,HSTACK(MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=0,r,""))),""),IFNA(XLOOKUP(U1,data1,data2),"-"))))

이렇게 값을 가져오면 되겠네요.



그리고 날짜는 그냥
=ARRAYFORMULA($A$2:$A)
이렇게만 해도 됩니다..
carg
IP 58.♡.0.209
07-28 2023-07-28 14:43:15
·
@Myayu님

안녕하세요~ 알려주신 수식을 이용해서 잘 사용하다 설문 항목이 추가되면서
홀수만 반환하고 짝수는 반환하지 못하는문제가 있습니다.

IF(MOD(idx,2)=1,r,"")
이 수식이 적절하지 않은 상황이 되버렸는데 머리를 싸매다가 도저히 안되어 또 도움을 구해봅니다 ㅜㅜ

어떻게 응용하면 좋을까요?
https://docs.google.com/spreadsheets/d/1urTf_250qY-GuYEbDF-lOLMXk3MG8gpVMxXsy2-B-6w/edit#gid=1755696079
Myayu
IP 112.♡.32.181
07-28 2023-07-28 15:41:31
·
@carg님

규칙성이 없이 불규칙한 패턴으로 데이터가 나타난다면, 홀짝이나 n번째 데이터를 취하는 방법으론 안되고,
라벨을 읽어서 하는 방법을 쓰면 됩니다.

=BYROW($B$2:$S,LAMBDA(a, LET(rdata,MAP(a,$B$1:$S$1,LAMBDA(r,la,IF(la="기관명",r,""))),IFNA(XLOOKUP(U1,rdata,rdata),"-"))

1열 라벨에 '기관명'이 있는 데이터만 모으도록 바꾼 수식입니다.

=BYROW($B$2:$S,LAMBDA(a,LET(data1,HSTACK("",MAP(a,$B$1:$S$1,LAMBDA(r,la,IF(la="기관명",r,"")))),data2,HSTACK(MAP(a,$B$1:$S1,LAMBDA(r,la,IF(la="상세내용",r,""))),""),IFNA(XLOOKUP(U1,data1,data2),"-"))))

같은 방법으로 상세내용도 모으면 됩니다.
carg
IP 58.♡.0.209
07-28 2023-07-28 15:45:03
·
@Myayu님 흑 ㅜㅜ정말 감사합니다. 만나서 식사라도 대접해드리고 싶습니다
carg
IP 58.♡.0.209
07-28 2023-07-28 16:00:13
·
@Myayu님
정말죄송하지만, 위스프레드 시트 링크에서 알려주신 수식대로 해도 안되길래 범위를 바꾸고, aa1 로 수정해봤지만 잘 안되는 것 같습니다. ㅜㅜ

ac2 =
BYROW($B$2:$Y,LAMBDA(a, LET(rdata,MAP(a,$B$1:$Y$1,LAMBDA(r,la,IF(la="기관명",r,""))),IFNA(XLOOKUP(AA1,rdata,rdata),"-"))))

ad2 =
=BYROW($B$2:$Y,LAMBDA(a,LET(data1,HSTACK("",MAP(a,$B$1:$Y$1,LAMBDA(r,la,IF(la="기관명",r,"")))),data2,HSTACK(MAP(a,$B$1:$Y1,LAMBDA(r,la,IF(la="상세내용",r,""))),""),IFNA(XLOOKUP(AA1,data1,data2),"-"))))

이렇게 했는데 안되더라고요
Myayu
IP 112.♡.32.181
07-28 2023-07-28 16:06:39 / 수정일: 2023-07-28 16:11:06
·
@carg님 기관명이라는 라벨을 찾기 때문에 라벨을 '기관명'으로 해야 됩니다.

라벨을 기관명(숫자)로 써야한다면

la="기관명" 을 LEFT(la,3)="기관명" 로 바꾸세요.

BYROW($B$2:$Y,LAMBDA(a, LET(rdata,MAP(a,$B$1:$Y$1,LAMBDA(r,la,IF(la="기관명",r,""))),IFNA(XLOOKUP(AA1,rdata,rdata),"-"))))

를

BYROW($B$2:$Y,LAMBDA(a, LET(rdata,MAP(a,$B$1:$Y$1,LAMBDA(r,la,IF(LEFT(la,3)="기관명",r,""))),IFNA(XLOOKUP(AA1,rdata,rdata),"-"))))

이렇게..
carg
IP 58.♡.0.209
07-28 2023-07-28 16:58:48
·
@Myayu님 잘 됩니다. mid함수나 right 함수를 써도 되겠네요 정말 감사합니다. !!!
carg
IP 58.♡.0.209
07-29 2023-07-29 10:23:57
·
@Myayu님
알려주신 내용을 토대로 실제로 2개의 스프레드시트에서 사용중인 함수입니다.

함수 내용은 보시면 바로 아시겠지만, (제가 메모하는 차원에서 굳이 설명하자면)
3,4번은 기존에 알려주신 방법대로 IF(MOD(idx,2)=1,r,"") 방식으로 홀짝이 맞아서 잘 사용중인 함수이며

1,2번은 홀짝으로 해결되지 않아 변형한 함수 입니다.

2번은 잘 되지만 1번은 안되는데 원인을 알 수 있을까요?



1
=BYROW('R'!$R$2:$AO,LAMBDA(a,countif(MAP(a,$R$1:$AO$1,LAMBDA(r,la,IF( right(la,5)="거부 기관" ,r,""))),P1)))

2
=BYROW('R'!$R$2:$AO,LAMBDA(a,LET(rdata,MAP(a,$R$1:$AO$1,LAMBDA(r,la,IF( right(la,5)="거부 기관" ,r,""))),IFNA(XLOOKUP(P1,rdata,rdata),"-"))))

3
=BYROW('R'!$T$2:$BF,LAMBDA(a,countif(MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,""))),P1)))

4
=BYROW('R'!$T$2:$BF,LAMBDA(a,LET(rdata,MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,""))),IFNA(XLOOKUP(P1,rdata,rdata),"-"))))


또한 5번 함수는
"거부 기관" 바로 다음 열에"거부 사유"가 이어지지 않으면 작동되지 않아 애를 먹다가 결국은 구글 설문 응답의 열 순서를 강제로 바꿔버려서 해결했습니다 (거부기관 바로 우측열에 거부사유가 오도록)

5
=BYROW('R'!$R$2:$AP,LAMBDA(a,LET(data1,HSTACK("",MAP(a,'R'!$R$1:$AP$1,LAMBDA(r,la,IF( right(la,5)="거부 기관" ,r,"")))),data2,HSTACK(MAP(a,'R'!$R$1:$AP$1,LAMBDA(r,la,IF( RIGHT(la,5)="거부 사유" ,r,""))),""),IFNA(XLOOKUP(P1,data1,data2),"-"))))

6
=BYROW('R'!$T$2:$BF,LAMBDA(a,LET(data1,HSTACK("",MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=1,r,"")))),data2,HSTACK(MAP(a,SEQUENCE(1,COLUMNS(a)),LAMBDA(r,idx,IF(MOD(idx,2)=0,r,""))),""),IFNA(XLOOKUP(P1,data1,data2),"-"))))
carg
IP 58.♡.0.209
07-29 2023-07-29 13:28:04
·
@Myayu님

=BYROW('R'!$R$2:$AO,LAMBDA(a,countif(MAP(a,'R'!$R$1:$AO$1,LAMBDA(r,la,IF( right(la,5)="거부 기관" ,r,""))),P1)))

시트명을 안넣어서 생긴 문제였습니다 ㅜㅜ
해결했습니다. 늘 감사합니다.
carg
IP 58.♡.0.209
09-26 2023-09-26 16:34:56 / 수정일: 2023-09-26 16:36:21
·
@Myayu님
안녕하세요 오랫만에 또 문의드립니다. 기존에 알려주신 방법을 활용해서 아래와 같이 수식을 사용하고 있습니다.
설문지 형식으로, 답변이 기록되는 시트 즉, R 시트에는 T열 부터 BF열 까지 열(칼럼)로 구분되어있습니다.
(1차부터 10차수 까지 거부기관과 그사유가 표기되는 구조)

T열: 1차 거부 기관
U열: 1차 거부 사유
V열 1차 기타 사유
W열: 2차 거부기관이 있습니까?
X열: 2차 거부 기관
Y열: 2차 거부 사유
Z열: 2차 기타 사유
AA열: 3차 거부기관이 있습니까?
.
.

BF열: 10차 기타 사유

아래수식을 사용하면, 현재 시트의 P1에 있는 기관명을 찾아, 거부 사유를 출력할 수 있는데, 거부 사유가 "기타" 인 경우, 그 다음 칼럼에 있는 "기타 사유" (V열, Y열...BF열)를 출력하는 수식으로 바꿔보고 싶은데, 도저히 안되어 문의드려봅니다.


=BYROW('R'!$T$2:$BF, LAMBDA(a,
LET(data1, HSTACK("", MAP(a, SEQUENCE(1, COLUMNS(a)), LAMBDA(r, idx, IF(MOD(idx, 2) = 1, r, "")))),
data2, HSTACK(MAP(a, SEQUENCE(1, COLUMNS(a)), LAMBDA(r, idx, IF(MOD(idx, 2) = 0, r, ""))),""),
IFNA(XLOOKUP(P1, data1, data2), "-"))
)
)
Myayu
IP 112.♡.32.181
09-26 2023-09-26 18:45:39 / 수정일: 2023-09-26 18:46:05
·
@carg님 저건 홀짝으로 가져오는 수식이라 수정할 방법이 없고

=BYROW($T$2:$BF100,
LAMBDA(a,LET(targetname,P1,larange,$T$1:$BF1,
larex,"^\d+차거부기관$",
data1,MAP(a,larange,LAMBDA(r,la,IF(AND(REGEXMATCH(la,larex),targetname=r),OFFSET(r,0,1),""))),data2,MAP(a,larange,LAMBDA(r,la,IF(AND(REGEXMATCH(la,larex),targetname=r),OFFSET(r,0,2),""))),data1f,CHOOSECOLS(IFNA(FILTER(data1,data1<>""),"-"),1),data2f,CHOOSECOLS(IFNA(FILTER(data2,data2<>""),"-"),1),IF(data1f="기타",data2f,data1f))))

첫 범위에 데이터 범위
targetname은 찾을데이터..
larange는 제목의 범위
larex는 n차거부기관 만 추출해내는 정규식

이런식으로 제목값을 찾아서 1번째, 1번째가 기타면 2번째 오른쪽 값 가져오는 식으로 짜야겠네요.
carg
IP 223.♡.251.112
09-26 2023-09-26 21:35:51
·
@Myayu님 감사합니다. 데이터 자체는 r시트에 있어서 아래와 같이 바꿨는데
안되네요 혹시 어디가 잘못 됐을까요? (p1에 있던 기관명은 열을 추가하면서 q1으로 바꿨습니다. )

=BYROW('R'!$T$2:$BF,
LAMBDA(a,LET(targetname,Q1,larange,'R'!$T$1:$BF1,
larex,"^\d+차거부기관$",
data1,MAP(a,larange,LAMBDA(r,la,IF(AND(REGEXMATCH(la,larex),targetname=r),OFFSET(r,0,1),""))),data2,MAP(a,larange,LAMBDA(r,la,IF(AND(REGEXMATCH(la,larex),targetname=r),OFFSET(r,0,2),""))),data1f,CHOOSECOLS(IFNA(FILTER(data1,data1<>""),"-"),1),data2f,CHOOSECOLS(IFNA(FILTER(data2,data2<>""),"-"),1),IF(data1f="기타",data2f,data1f))))
carg
IP 1.♡.232.209
09-26 2023-09-26 22:51:16
·
@Myayu님
원인을 찾았습니다.
larex,"^\d+차거부기관$",
-> 단순 띄어쓰기 오류였습니다.
larex,"^\d+차 거부 기관$",

정말 감사합니다^^
Myayu
IP 112.♡.32.181
09-26 2023-09-26 23:33:22
·
@carg님 아마 데이터가 일정 이상 크면, 연산량 과다 에러가 날 수도 있을텐데

=LET(
targetname,P1,
larange,$T$1:$BF1,
larex,"^\d+차거부기관$",
datarange,$T$2:$BF100,
ladata,MAP(larange,LAMBDA(la,IF(REGEXMATCH(la,larex),true, false))),BYROW(datarange,LAMBDA(a, LET(data1,MAP(a,ladata,LAMBDA(r,latf,IF(AND(latf,targetname=r),if(OFFSET(r,0,1)="기타",OFFSET(r,0,2),OFFSET(r,0,1)),""))),CHOOSECOLS(IFNA(FILTER(data1,data1<>""),"-"),1)))))

이 수식으로 하면, 연산량이 줄어서 좀 더 많은 데이터가 빨리 처리 될거예요.
carg
IP 58.♡.0.209
07-11 2023-07-11 15:32:05
·
정말 매번 챗지피티 보다 뛰어난 답변에 감탄합니다. ㅜㅜ
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.