
Googleã¹ãã¬ããã·ãŒã ã·ãŒã颿°ã§äœããé åãšçµã¿åãããå šãã¿ãŒã³åºå 2
ååã«ç¶ãGoogleã¹ãã¬ããã·ãŒãã®ã·ãŒã颿°ãã¿ããé åãšçµã¿åãããã®å šãã¿ãŒã³ãåºåããæ°åŒãèããŠã¿ãããšæããŸãã
GASã䜿ããã·ãŒã颿°ã®çµã¿åããã®ã¿ã§å®çŸããŸãã
ä»åã¯ååãšåãã LETãLAMBDAç»å Žåã®å€ãããæ¹ã§ã®ãçµã¿åãããã®å šãã¿ãŒã³åºååŒã®ç޹ä»ã§ããããã¡ãã¯æ°é¢æ°ã䜿ã£ãã€ãããïŒæå 端ïŒã® é åãçµã¿åããã®åŒã«ãè² ããªããå²ãšã·ã³ãã«ã§åäœã®è»œãçŸåšã§ãååéçšããåŒãšãªã£ãŠããŸãã
LAMBDA颿°ã䜿ã£ãææ°ã®è§£æ³ã¯ã»ã»ã»ãä»åã¯ãããŸã§ãã©ãçããæ¬¡åãšãªããŸãïœ ïŒçµåã ã®è§£èª¬ã ãã§ïŒäžæåè¶ ããŠããŸã£ãã®ã§ïŒ
çžå€ãããã®é·ænoteã§ãããæ¯éæåŸãŸã§ãèªã¿ãã ããã
ååã® noteã¯Googleã¹ãã¬ããã·ãŒãã®LET,LAMBDA ç»å Žåã®é¢æ°ãçµã¿åãããŠãé åããå šãã¿ãŒã³åºåããåŒã玹ä»ããŸããã
ååã®åŒãããŒã¹ã«ãçµã¿åããå šãã¿ãŒã³åºååŒããèãã

ãã®éšåã¯æ£çŽãäœè«ãªãã§èªã¿é£ã°ããŠããã ããŠãOKã§ãã
ååã®é åã®åŒãããŒã¹ã«çµã¿åããã®å šãã¿ãŒã³åºååŒãäœãããšããæã«ããã¯ãšãªãã®ããéè€ãã©ãæé€ãããã§ãã
ããšãã° ç»åã®ã±ãŒã¹ãA,B,C,Dã®4ã€ã®èŠçŽ ãã3ã€ãåãåºããå Žåãçµã¿åããã ãš
A,B,C ãš A,C,BãB,A,CãB,C,AãC,A,BãC,B,A ãããã¯åäžãšèŠãªãããŸãã
ååã®é åã®å šãã¿ãŒã³åºååŒ
=ARRAYFORMULA(
VLOOKUP(
A1,
A1:E1,
MID(
FILTER(
BASE(SEQUENCE(COUNTA(A1:E1)^B3,1,0),COUNTA(A1:E1),B3),
LEN(REGEXREPLACE(
CONCATENATE(SEQUENCE(COUNTA(A1:E1),1,0)),
"["&BASE(SEQUENCE(COUNTA(A1:E1)^B3,1,0),COUNTA(A1:E1),B3)&"]",
))=COUNTA(A1:E1)-B3
),
SEQUENCE(1,B3),1
)+1,
FALSE
)
)ãããããŒã¹ã«èããå Žåãã©ããã£ãéè€æé€æ¹æ³ãããã§ããããïŒ
1.FILTER颿°ã§ãè¡åäœã§èŠãŠèªåã®å³åŽã«èªå以äžã®æ°å€ãç¡ãããæ¡ä»¶ã«çµã蟌ã
å®ããŒã¿ã ãšé£ããã®ã§ããã®æåã®æ°å€ãããŒã¹ã«èããŠã¿ãŸãããã
å ã»ã©ãšåãã4ã€ã®èŠçŽ ãã3ã€ãåãåºããå ŽåãBASE颿°ã§çæã§ããæ°å€ã§èããå Žåã
0,1,2
㚠以äžã¯åãçµã¿åããã§ãã
0,2,1
1,0,2
1,2,0
2,0,1
2,1,0
ãããªããŸãã
ãã®æ åãçµã¿åãããšèŠãªãããæ°å€ã®çµã¿åããã®ç¹åŸŽãšããŠã¯ããèªåã®å³åŽã«èªå以äžã®æ°å€ãç»å ŽããããšèšããŸãã
0,1,2 ã»ã»ã»å¿ ãå³åŽã®æ°åã¯å·ŠåŽã®æ°åãã倧ãã
ããã
0,2,1
1,0,2
1,2,0
2,0,1
2,1,0ãã»ã»ã» èªåã®å³åŽã«èªå以äžã®æ°å€ãç»å ŽããŠãã
ãããæ¡ä»¶ã«FILTER颿°ã§çµã蟌ãããã«ã¯

=ARRAYFORMULA(--MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1))
BASE颿°ã§çæãã 000ïœ333ãŸã§ã®é åã3åã®æ°å€é åã«åå²ããŠãã

=ARRAYFORMULA(BYROW(--MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),LAMBDA(r,{-1,CHOOSECOLS(r,SEQUENCE(COLUMNS(r)-1))})))
BYROW颿°ã§è¡æ¯ã«ãå·Šã« -1ãç¹ããŠãäžçªå³åŽã®åãé€å€ãã3åã®é åãçæããŠãã

=ARRAYFORMULA(BYROW(--MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),LAMBDA(r,AND({-1,CHOOSECOLS(r,SEQUENCE(COLUMNS(r)-1))}<r))))
ãã®ããã«è¡åäœã§
AND(äžã€å·Šã«ãºã©ã㊠äžçªå³ã« -1ãä»ãã 3åã®é å ïŒ å ã®3åã®é å)
ãšããåŠçãããããšã§ã
ãè¡åäœã§èŠãŠèªåã®å³åŽã«èªå以äžïŒåããå«ãïŒã®æ°å€ãç¡ããè¡ã ã TRUEãšãªããŸãã

0,1,2ã0,2,3ã1,2,3 ã®è¡ãTRUEãšãªã£ãŠããŸããã
ãããæ¡ä»¶ãšããŠFILTER颿°ã䜿ãããšã§

=FILTER(
 --MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),
 BYROW(--MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),
 LAMBDA(r,AND({-1,CHOOSECOLS(r,SEQUENCE(COLUMNS(r)-1))}<r))))
0,1,2,3,4 ã® 4ã€ã®èŠçŽ ã®äžãã 3ã€ãåãåºãã çµã¿åããã®å šãã¿ãŒã³ãšãªããŸãã
ã§ãããããªããªããããŒãªåŒã§ãããã
äžå¿ FILTER颿°ã®æ¡ä»¶åã®çæã«BYROW颿°ãäœ¿ãæ¹æ³ã¯ã以åã®noteãFILTER颿°ã®è¶ å¿çšäŸãã§è§ŠããŠããŸãã
2.SORT颿°ã§ãè¡åäœã«å·Šããæé ã«äžŠã¹æ¿ããããŠæåŸã«UNIQUEã§éè€æé€
ãã1ã€ãé åã®äžã®éè€ãæé€ããŠçµã¿åããã«ããæ¹æ³ãšããŠãè¡åäœã§äžŠã³æ¿ãããããæ¹ãæãã€ããŸãã
0,2,1ãâã0,1,2
1,0,2ãâã0,1,2
1,2,0ãâã0,1,2
2,0,1ãâã0,1,2
2,1,0ãâã0,1,2
ãã®ããã« å šãŠå·Šããå³ã«æé ã«äžŠã³æ¿ããŠããUNIQUE颿°ã§éè€æé€ãšããæ¹æ³ã§ãã

=FILTER(
 MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),
 LEN(REGEXREPLACE(JOIN(,SEQUENCE(4,1,0)),
 "["&BASE(SEQUENCE(4^3,1,0),4,3)&"]",))=4-3)
ãã¡ãã¯åå²ã®åã«ååã®é åã§ç»å Žãã REGEXREPLACE颿°ãšLEN颿°ãçšããæ¹æ³ã§æ¡ä»¶åŒãäœããFILTER颿°ã§åãæ°åã2å以äžäœ¿ãã±ãŒã¹ãæé€ãã€ã€ 3åã«åå²ã

=TRANSPOSE(BYCOL(TRANSPOSE(
 FILTER(MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),
 LEN(REGEXREPLACE(JOIN(,SEQUENCE(4,1,0)),
 "["&BASE(SEQUENCE(4^3,1,0),4,3)&"]",))=4-3)),
 LAMBDA(c,SORT(c))))
ãããTRANSPOSE颿°ã§ çžŠæšªå€æããŠãBYCOL颿°ã§åæ¯ã«SORTã§æé ã«ããŠãã ååºŠå šäœãTRANSPOSEã§çžŠæšªãæ»ããŸãã
Googleã¹ãã¬ããã·ãŒãã¯æšªæ¹åã®äžŠã¹æ¿ããåºæ¥ãªãã®ã§ãã©ãããŠã
瞊æ¹åã®ããŒã¿ã«ãã â SORT颿°ã§äžŠã³æ¿ã â æšªæ¹åã®ããŒã¿ã«æ»ã
ãšããæé ãèžãå¿ èŠããããŸãã

=UNIQUE(TRANSPOSE(BYCOL(TRANSPOSE(
 FILTER(MID(BASE(SEQUENCE(4^3,1,0),4,3),SEQUENCE(1,3),1),
 LEN(REGEXREPLACE(JOIN(,SEQUENCE(4,1,0)),
 "["&BASE(SEQUENCE(4^3,1,0),4,3)&"]",))=4-3)),
 LAMBDA(c,SORT(c)))))
äžŠã³æ¿ããåºæ¥ãã°ãæåŸã« UNIQUE颿°ã§éè€æé€ã§å®æã§ãã
2ã€æ¹æ³ã玹ä»ããŸããã
ãã®ããã«ååã®é åã®å šãã¿ãŒã³åºååŒãããŒã¹ã« çµã¿åãããåºãæ¹æ³ãããã®ã§ãããã©ã¡ãã®åŒã LAMBDAãã«ããŒé¢æ°ã® BYROWãBYCOLããããããªããšãåŠçã§ããŠããŸãã
ãããã䜿ããªãæ¹æ³ãšãªããšéåžžã«é£ãããã§ãããããè¡æ¯ã®äžŠã¹æ¿ãã¯å³ãããã»ã»ã»ã1ã€ç®ã®æ¯èŒã¯MMULTçµã¿åãããŠåºæ¥ããããã
ä»®ã«åºæ¥ããšããŠæé ãå¢ããã®ã§ãé åã®éãèšç®åŠçãããã«éããªããããšããæžå¿µããããŸãã
éãã¢ãããŒãã§ãçµã¿åããå šãã¿ãŒã³åºååŒããèãã
ãšããããã§ãçµã¿åãã㯠é åã®å šãã¿ãŒã³åºååŒãšã¯ãå¥ã¢ãããŒãã§èããå¿ èŠããããŸãã
ããããããçµã¿åããå šãã¿ãŒã³åºååŒã®æ¬çªã§ãã
Step1. çµã¿åããã 2鲿°ã§èãã
䞊ã³é ã圱é¿ããé åãšéã£ãŠãçµã¿åãã㯠èŠçŽ ã®äžãããéžæãããããéžæããªãããã®2æã§ãã
ã€ãŸã ã0 ã 1 ããã® 2鲿°ã®äžçãšèããããšãã§ããŸãã

4ã€ã®èŠçŽ ãã 2ã€ãåãåºãã±ãŒã¹ã®çµã¿åãããèããéã«ã 4æ¡ã®2鲿° 0000ïœ1111 ãŸã§ãçšæãããšããŸãã
0ããåãåºããã1ããåãåºããªãã ãã©ã°ãšå®çŸ©ãããšã
0000 ã 0001ã0010㯠0 ã3ã€ä»¥äžããã®ã§ 察象å€ãšãªããŸããã0011ã0101ãªã©ã¯ 0ã2ã€ãªã®ã§ 2ååãåºããšããä»åã®ã±ãŒã¹ã«ãããããŸãã
0ã®äœçœ®ããã®ãŸãŸæšªäžŠã³ã®èŠçŽ ã®äœçœ®ãšèããã°
0011 ãªã A,B ãåãåºã
0101 ãªã A,C ãåãåºã
ãš èŠãªããŸããã
ããã§ã1ãåãåºãã0ãåãåºããªãããšå®çŸ©ããæ¹ãèªç¶ãªæ°ãããŸãããããã¯ã0ãåãåºãã1ãåãåºããªãããšå®çŸ©ããããšããå§ãããŸãã
ã1ãåãåºãããšããŠããŸããš 0000ïœ1111ãŸã§ã䞊ã¹ãæã«ãé çªçã« 0011ã0101 ãªã©ãå ã«ç»å ŽããçºãèŠçŽ ã®ãã¡å³åŽã®çµã¿åãã C,DãB,Dãå ã«ç»å ŽããŠããŸãçºã§ãã

人éã®æèŠã ãšãŸãå·ŠåŽã®èŠçŽ ããçµã¿åãããŠããæ¹ãèªç¶ã§ããããã ãã1ã§ã¯ãªãã0ããåãåºãããšå®çŸ©ããŠããŸãã
Q1. BASE颿°ã§ 0000ïœ1111ãçæããã

ããã§ã¯ãé¡ãã£ãŠã¿ãŸããããå šéã®é åã®æãããç°¡åã ãšæããŸãã
BASE颿°ã䜿ã£ãŠäžã€ã®åŒã§ 0000ïœ1111ãŸã§ã®ç»åã®ãããªé åãçæããã®ã¯ã©ãããã°ããã§ããããïŒ
䜿ããå€ã¯
å ã®èŠçŽ æ°ãã»ã»ã»ã4
åãåºãæ°ãã»ã»ã»ãæªå®ïŒããã§ã¯äœ¿ããªãïŒ
åºãããããã»ã»ã»ã2
ã ãã§ããèããŠã¿ãŸãããïŒ
ââ
ããããåçã§ãã
ââ
A1. BASE颿°ã§ 0000ïœ1111ãçæãã
åçã§ãã

=ARRAYFORMULA(BASE(SEQUENCE(2^4,1,0),2,4))
ãŸã 4æ¡ã® 0000ïœ1111 ãŸã§ã¯ 2^4ïŒ2ã®4ä¹ïŒéããããŸãã
ãã㯠0ã1ã®ã©ã¡ãã2æã®å ¥ãç©ã4ã€ãããšèããŠãã ããã

2^4ãã€ãŸã 16ãã¿ãŒã³ãªã®ã§ãSEQUENCE颿°ã§16åã®é£çªãçæããŸãããã®æã¹ã¿ãŒãã 0 ïŒå€æåŸ 0000ïŒããšãããã®ã§ã
SEQUENCE(2^4,1,0)
ãšããŠããŸãã
BASE颿°ã§ããã第1åŒæ°ãšããŠã
第2åŒæ°ã®åºã2鲿°ãªã®ã§ 2
第3åŒæ°ã®æ¡æ°ã èŠçŽ ã®æ° 4 ãšããŠ
ããã«é
åã«å¯ŸããåŠçãªã®ã§ARRAYFORMULAãçµã¿åãããŠ
=ARRAYFORMULA(BASE(SEQUENCE(2^4,1,0),2,4))
ãããªåŒã«ãªããŸãã
=ARRAYFORMULA(BASE(SEQUENCE(2^4)-1,2,4))
ããããŠãOKã
ã€ãŸã çµã¿åãããæ±ããéã¯ããã®æ®µéã§åãåºãæ°ã¯é¢ä¿ãªã
=ARRAYFORMULA(
ãBASE(SEQUENCE(2^ãèŠçŽ ã®æ°ã,1,0),2,ãèŠçŽ ã®æ°ã))
ãšããããšã§ããã
Step2. åãåºãããæ°ã«ããããããã®ã ãã«çµã蟌ã

ãã®2鲿°ã®0000ïœ1111ã®å šãã¿ãŒã³ããåãåºãæ°ãã«åãããŠçµã蟌ã¿ãŸãã
ã0ãåãåºãããšå®çŸ©ããŠããã®ã§ã䜿ãããŠãã 0ã®æ°ãåãåºãæ°ãšäžèŽããŠãããã®ã ãã«çµã蟌ãã°ããã§ããã
Q2. çæãã 0000ïœ1111 ã 0ã2å䜿ãããŠãããã®ã ãã«çµã蟌ã¿ãã

ãé¡ãã£ãŠã¿ãŸããããBASE颿°ã§çæãã 0000ïœ1111ã®ãã¡ 0ã2åã ã䜿ãããŠããïŒç»å ŽããïŒãã®ã ãã«çµã蟌ã¿ããå Žåãã©ããªæ°åŒãçµãã°ããã§ããããïŒ
ãããé åã®æã®åŒã«æ¯ã¹ããšãã£ãšç°¡åã§ããèããŠã¿ãŸãããïŒïŒâ»LET,LAMBDA ãç¡ãæä»£ã®åŒã§ãïŒ
ââ
ããããåçã§ãã
ââ
A2. çæãã 0000ïœ1111 ã 0ã2å䜿ãããŠãããã®ã ãã«çµã蟌ã
åçã§ãã

=FILTER(BASE(SEQUENCE(2^4,1,0),2,4),
 LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2)
ã0ã2åã ã䜿ãããŠãããã¯ãã0以å€ã®æåïŒæ°åïŒãæ¶ããŠ0ã ãã«ããå Žå æ®ã£ãæåæ°ã¯ 2ã«ãªãããšèããããšãã§ããŸãã
ä»åã¯0以å€ã¯1ãã䜿ãããŠãªãã®ã§ç°¡åã§ãããåºæ¬ã®çœ®æé¢æ°ã§ããSUBSTITUTE颿°ã䜿ããŸãããã

ãã®çµæãã LEN颿°ã§æåæ°ãååŸããã°ã0ã䜿ãããŠããæ°ãšãªããŸãããããã =2ãïŒåãåºãæ°ïŒã§ãããæ¡ä»¶ãšããŠFILTER颿°ã䜿çšããã°ããã®ã§
=FILTER(BASE(SEQUENCE(2^4,1,0),2,4),
 LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2)
åçã®ãã®åŒã«ãªãããã§ããFILTERå ã§ã¯èªåã§é ååŠç广ãä»äžãããã®ã§ãARRAYFORMULAã¯äžèŠãšãªããŸãã
èŠçŽ æ°ãšåãåºãæ° ã䜿ããš
=FILTER(BASE(SEQUENCE(2^ãèŠçŽ æ°ã,1,0),2,ãèŠçŽ æ°ã),
 LEN(SUBSTITUTE(
 BASE(SEQUENCE(2^ãèŠçŽ æ°ã,1,0),2,ãèŠçŽ æ°ã),1,))=ãåãåºãæ°ã)
ãããªããŸãã
Step3a. åå²ãããªãããããŠå ã®èŠçŽ ãé£çµã§æ£èŠè¡šçŸã§åãåºã

ãã®FILTER颿°ã§åãåºãããæ°ïŒ0ã®æ°ïŒã§çµã蟌ãã çµæã䜿ã£ãŠãé åã®æãšåãããã«åå²ããŠå®ããŒã¿ããåŒãåœãŠããããšããã§ãããããã¯ãå§ãããŸããã
äžã®ç»åã¯
=FILTER(
IF(--MID(BASE(SEQUENCE(2^4,1,0),2,4),SEQUENCE(1,4),1),,A2:D2),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
)ãã®ãããªåŒã§FILTERå ã§BASE颿°ã§çæãã0000ïœ1111ãåå²ããŠæ°å€åãIF颿°ã§ 1ãTRUEã0ãFALSEæ±ãã§åå²ãã㊠é åãšããŠäœçœ®ã察å¿ãã A2:D2ãåŒãåœãŠããã®ããåãåºãããæ°ïŒïŒã®æ°ïŒã§FILTER颿°ã§çµã蟌ãã çµæã§ãã
ãã®çµæã

ãããªãããã§ããããã ã£ãšå·Šã«å¯ãããã§ããããã
ãã®è¡æ¯ã®å·Šãžã®ç©ºçœè©°ãã»ã»ã»ä»ã ã£ãã BYROWã䜿ã£ãŠè¡æ¯ã«TOROW颿°ã§ç©ºçœè©°ããç°¡åã«åºæ¥ãŸãã
TOROW颿°ãTOCOL颿°ã® 第2åŒæ° 1èšå®ã§ 空çœãç¡èŠããŠè©°ãã仿§ã¯éåžžã«éå®ããŸãã

=BYROW(
FILTER(
IF(--MID(BASE(SEQUENCE(2^4,1,0),2,4),SEQUENCE(1,4),1),,A2:D2),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
),LAMBDA(r,TOROW(r,1))
)ã§ãããããªåŒã§åŠçåºæ¥ãã®ã¯ãè¡æ¯ã«åŠçãåºæ¥ãLAMBDAãã«ããŒé¢æ°ã®BYROWããã£ãŠãããã«Googleã¹ãã¬ããã·ãŒãã®BYROWã¯ è¡æ¯ã«åŠçããŠé åãè¿ãããšãåºæ¥ãããã§ãã
åœç¶ã§ãã LAMBDAç»å Žåã¯ããã®ç¶æ ããè¡æ¯ã®ç©ºçœè©°ãã¯ãªããªãå³ãããã®ããããŸããã
ãã ãããã¯äžå¿ããæ¹ããã£ãŠ

=ARRAYFORMULA(
SPLIT(TRANSPOSE(
SPLIT(TEXTJOIN(",",TRUE,
FILTER(
IFERROR(
IF(--MID(BASE(SEQUENCE(2^4,1,0),2,4),SEQUENCE(1,4+1),1),,A2:D2)
,"_"
),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
)
),"_")
),",")
)ãã®ããã«ããããŠMID颿°ã®ç¬¬2åŒæ°ã +1 ããããšã§ã1ã€å€ããšãããšããããšã§ãšã©ãŒãåãããIFERROR 㧠"_"ãäžçªå³ã®åã«ä»èŸŒãã é åãçæïŒãããæ¹è¡çšããŒãã³ã°ãšããïŒãTEXTJOINãšSPLIT2åã§ äžåºŠãŸãšããŠãã瞊åå²ã暪åå²ã£ãŠæµãã§åŠçããŠããŸãã
SPLITãšTEXTJOINãçžŠæšªå€æãçµã¿åããã TEXTSPLITã®ãããªåå²ãã¯ã¯éå»noteã§ã玹ä»ããæã§ãã
ãã ãããã¡ããè¯ãæ¹æ³ããããã§ä»åã¯ãã¡ãã玹ä»ããŸãã
èãæ¹ãšããŠã¯åå²ããã«æ£èŠè¡šçŸã掻çšããŠãå ã®èŠçŽ ãé£çµããŠããã¶ã£ãæãã§ãïŒ
ãé¡ãã£ãŠã¿ãŸãããã
Q3. æ£èŠè¡šçŸã§ ããã¹ããã è€æ°ãã¿ãŒã³ãåãåºããã

现ãã説æã¯åŸã«ããŠããŸãã¯ãã®ãé¡ã«ãã£ã¬ã³ãžããŠã¿ãŠãã ããã
Q3-1. A2:D2ã®ç¯å²ã®èŠçŽ ã F2ã®ããã« ã«ã³ãåºåãïŒæåŸã«ãã«ã³ãä»ïŒã®1ã€ã®ããã¹ã A,B,C,D, ãšããããã©ããªåŒãF2ã«å ¥ããã°ãããïŒ
Q3-2. F2ã®ããã¹ããã ã«ã³ãã§åºåãããèŠçŽ ã® 1ã€ç®ãš2ã€ç®ããããŠ1ã€ç®ãš3ã€ç®ãšããçµã¿åããã F8:G9 ã®ãããªåœ¢ã§åãåºãããã
ãã㯠F8ã«å
¥ããåŒ
=ARRAYFORMULA(REGEXEXTRACT(F2,H8:H9))
ã§ F8:G9 ã®çµæãåºåããŠããããH8ãšH9ã«ã¯ã©ã®ãããªæ£èŠè¡šçŸããã¹ãããããã°ãããïŒ
ãã®2ã€ããã£ãŠã¿ãŸãããã
ãé¡ã¯ A,B,C,D ãšåæåã§ãããåã ã®èŠçŽ ã2æå以äžã®ããã¹ãã§ã察å¿ã§ããããã«èããŸãããã
ââ
ããããåçã§ãã
ââ
A3. æ£èŠè¡šçŸã§ ããã¹ããã è€æ°ãã¿ãŒã³ãåãåºã
åçã§ãã
ãŸã㯠Q.3-1ã§ããã

=JOIN(",",A2:D2,)
ãããªåŒãè¯ãããšæããŸãã
JOIN颿°ã§ã«ã³ããåºåãæåãšããŠçµåã第3åŒæ°ã空ãšãããä»ã®åŒã§ãå¯èœã§ããããã®åŒãäžçªçãã§ãããã
TEXJOINã®æ¹ãåºçªã¯å€ãã§ããã空çœé€å»ãæ°ã«ããªããŠããäžæ¬¡å é åã®çµåã§ããã°JOIN颿°ã®æ¹ãçãæžããŸãã
第3åŒæ°ã«ç©ºãæå®ããŠåºåãæåã§é£çµã§ããã¯Googeã¹ãã¬ããã·ãŒããªãã§ã¯ã§ããã
ãããŠ3-2 ã®åçãæ£èŠè¡šçŸã§ããã

(.+?),(.+?),.+?,.+?,ãã»ã»ã» H8
(.+?),.+?,(.+?),.+?,ãã»ã»ã» H9
ãããªæ£èŠè¡šçŸããã¹ããæ£è§£ãšãªããŸããïŒä»ã®æžãæ¹ããããŸãïŒ
åãåºãããéšåã¯ã«ãã³ãã€ããŠãã£ããã£ã°ã«ãŒããšãã (.+?),
äžèŠãªéšåã¯ã«ãã³ãã€ããªã .+?,

ãã®ããã«ããããšã§ãã«ã³ãã§åºåãããæ¬²ããç®æãååŸããŠããŸãã

èŠçŽ ã2æå以äžã®å Žåã§ããåé¡ãªãåãåºããŠãŸããã
Step4. 0ãš1ãæ£èŠè¡šçŸã«å€æããã
ãããŸã§ãããšãã³ãšãã人ããããããããŸãããã

ãã®ããã« BASE颿°ã§çæããŠFILTERã§çµã蟌ãã 4æ¡ã®2鲿°ããã¹ãã®
0ã®ç®æã (.+?),
1ã®ç®æã .+?,
ãšããããšã§ãå ã®èŠçŽ ãé£çµããããã¹ãããã0ã®ç®æãåãåºãããã§ããã
ããã§ã¯ãé¡ã§ãã
Q4. 0 1ãæ£èŠè¡šçŸããã¹ãã«å€æããŠãå ããŒã¿ãåŒãåœãŠãã

Q2ã®åçã®åŒ
=FILTER(BASE(SEQUENCE(2^4,1,0),2,4),
 LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2)
ãšQ3 ã®åç
=JOIN(",",A2:D2,)
ãš
åãåºãããéšåã¯ã«ãã³ãã€ããŠãã£ããã£ã°ã«ãŒããšãã (.+?),äžèŠãªéšåã¯ã«ãã³ãã€ããªã .+?,
ããããçµã¿åãããŠã4ã€ã®èŠçŽ ïŒA,B,C,DïŒãã2ã€ãåãåºããå šçµã¿åãã 6ãã¿ãŒã³ãåºåããåŒãäœããŸãããïŒ
èããŠã¿ãŸãããã
ââ
ããããåçã§ãã
ââ
A4. 0 1ãæ£èŠè¡šçŸããã¹ãã«å€æããŠãå ããŒã¿ãåŒãåœãŠã
åçã§ãã

=ARRAYFORMULA(REGEXEXTRACT(JOIN(",",A2:D2,),
SUBSTITUTE(
SUBSTITUTE(
FILTER(BASE(SEQUENCE(2^4,1,0),2,4),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
),0,"(.+?),"
),1,".+?,"
)
))ãïŒãšæãæ¹ããããããããŸãããã解説ããŠãããŸãã
ãŸãã
åãåºãããéšå
0ãã  (.+?),ãã«çœ®æ
äžèŠãªéšå
1ããã .+?,ãã«çœ®æ
ãã®éšåã§ãããããã¯ããæ¹æ³ã¯ãããŸããã
ç ©éã§ãã2åãšåºå®ãããŠãŸãããSUBSTITUTEããã¹ããã¡ãããŸãããã
SUBSTITUTE(
SUBSTITUTE(
FILTER(BASE(SEQUENCE(2^4,1,0),2,4),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
),0,"(.+?),"
),1,".+?,"
)ããšã¯ Q3 ã®æã«äœã£ã JOIN(",",A2:D2,) ã®åŒã§ A,B,C,D, ãšããããã¹ããçæããŠãREGEXEXTRACT颿°ã§ã«ãã³éšåãååŸããã°OKã
FILTERã®å€åŽã§ã®é ååŠçãªã®ã§ãARRAYFORMULAãå¿ èŠãšãªããŸãã
Googleã¹ãã¬ããã·ãŒãã®é¢æ°ã®ç¥èããã人ãªãããã®åŠçãäžžããšFILTER颿°å ã«å ¥ãã¡ãã£ãæ¹ãçãã§ããã®ã§ã¯ïŒã£ãŠèãããããããŸããã
ãã¡ãããããã§ãåããããªçµæã¯åŸãããŸããåŒã¯çããªããŸãã

=FILTER(
REGEXEXTRACT(JOIN(",",A2:D2,),
SUBSTITUTE(
SUBSTITUTE(
BASE(SEQUENCE(2^4,1,0),2,4),0,"(.+?),"
),1,".+?,"
)
),LEN(SUBSTITUTE(BASE(SEQUENCE(2^4,1,0),2,4),1,))=2
)ããããããã¯åããããªçµæã®ããã«èŠããŠå®ã¯

ãã®ããã«èŠããªãã§ããã空çœåãå«ã 4åããŒã¿ãçµæãšããŠè¿ããŠããŸãã
ãã㯠FILTERã§çµã蟌ãåã« REGEXEXTRACT颿°ã§ ããã¹ããæãåºããŠããã®ã§ã0000ã®ã±ãŒã¹ã¯ A,B,C,D ãš4åããŒã¿ ã«ãªã£ãŠããããã§ãã
ãã®åŸã§ FILTERã§è¡ãçµã蟌ãã§ãé åã®åæ°ã®ãµã€ãºã¯å€ãããŸããã
äžæ¹åçã®åŒã¯ ARRAYFORMULAãå€åŽã«ã€ããŠåŒãšããŠã¯é·ããªã£ãŠããŸããŸãããã

ãã®ããã«2ã€åãåºãå Žåã®çµæç¯å²ã¯2åã§åãŸã£ãŠããã3åç®ã4åç®ã®ã»ã«ã¯çµæç¯å²ã§ã¯ãªãã®ã§ã»ã«ã«æå ¥åããŠãåé¡ãããŸããã
ãã㯠FILTERåŸã« REGEXEXTRACTã§æãåºãåçã®åŒããã¹ã¹ã¡ããŸãã
Step5. LET颿°ã䜿ã£ãæ±çšçãªåŒã«ããã
æåŸã«Q4 ã®åçã®åŒãããŒã¹ã«ãèŠçŽ ã®ç¯å²ãš ååŸããæ°ã ããæå®ããã ãã§äœ¿ãã æ±çšæ§ã®ããåŒãšããŸãããã
ä»å㯠æåããLET颿°ã䜿ã£ãŠæŽçããããšãšããŸãããã
Q5. çµã¿åããå šãã¿ãŒã³åºåã®æ±çšæ§ã®ããåŒã宿ãããã

æ¯äœãšãªã7ã€ã®èŠçŽ ã ã»ã«ç¯å²ã A1:G1 ã
åãåºãæ°ã B3 ã»ã«ã§æå®ãããšããŠã
A1:G1ã®7ã€ã®èŠçŽ ãã B3 ã§æå®ããæ°ãåãåºããæã®çµã¿åããå šãã¿ãŒã³ãåºåãã A5ã»ã«ã«å ¥ããåŒãèããŠã¿ãŸãããã
LET颿°ã§
A1:G1 ã a
B3 ã k
ãšå®çŸ©ãããã®ãšããŸãã
èããŠã¿ãŸãããïŒ
ââ
ããããåçã§ãã
ââ
A5. çµã¿åããå šãã¿ãŒã³åºåã®æ±çšæ§ã®ããåŒã宿ãããã
åçã§ãã

=ARRAYFORMULA(LET(
a,A1:G1,
k,B3,
n,COUNTA(a),
b,BASE(SEQUENCE(2^n,1,0),2,n),
_r0,"(.+?),",
_r1,".+?,",
x,FILTER(b,LEN(SUBSTITUTE(b,1,))=k),
y,SUBSTITUTE(SUBSTITUTE(x,0,_r0),1,_r1),
REGEXEXTRACT(JOIN(",",a,),y)
)) LET颿°ã䜿ããšæžãæ¹ã¯è²ã ãããŸãããäžã€ãã€ã¹ããããèžãã®ãããã§ããã
ãŸã å šäœã«é å广ãä»äžããçºã«ãLETã®å€åŽã«ARRAYFORMULAãã»ããããŸãã
a,A1:G1,ãã»ã»ã»ãèŠçŽ ãå
¥ã£ãŠããç¯å²
k,B3,ããã»ã»ã»ãåãåºãæ°
ã䜿ã£ãŠã
n,COUNTA(a),ãã»ã»ã»ãèŠçŽ ã®æ°ïŒä»åã®å Žåã¯7ïŒ
b,BASE(SEQUENCE(2^n,1,0),2,n),ãã»ã»ã»ãèŠçŽ ã®æ°ã®æ¡æ°ã® 000.. ïœ 111⊠ã®é å
ãçæããŸãæ£èŠè¡šçŸã
_r0,"(.+?),",ãã»ã»ã»ãåãåºãéšåã®æ£èŠè¡šçŸããã¹ã
_r1,".+?,",ãã»ã»ã»ãåãåºããªãéšåã®æ£èŠè¡šçŸããã¹ã
ãã®ããã«äºåã«å®çŸ©ããŠãããŸãããããŸã§ãäžæºå
x,FILTER(b,LEN(SUBSTITUTE(b,1,))=k),
FILTERã§ 0ãåãåºãæ°ã®ãã®ã ãã«çµã蟌ãã çµæã xãšçœ®ããŠ
y,SUBSTITUTE(SUBSTITUTE(x,0,_r0),1,_r1),
ãã® x ã® 0 ã _r0ïŒåãåºãïŒ ã« 1 ã _r1ïŒåãåºããªãïŒ ã«çœ®æããçµæã yãšããŠ
REGEXEXTRACT(JOIN(",",a,),y)
æåŸã« aïŒèŠçŽ ïŒãã«ã³ãé£çµããããã¹ã JOIN(",",a,) ãã å ã»ã©çæãã y ïŒçžŠ1åã®æ£èŠè¡šçŸããã¹ãã®é åïŒã§é ååŠçã§ ããšããš 0ã ã£ãç®æãåºåãâããããçµã¿åããå šãã¿ãŒã³
ãã®ããã«ããŠã¿ãŸãããä»ã®æžãæ¹ã§ãããã§ãã
æŒãããã¹ããã€ã³ãã¯ã䜿ãéã«å€æŽãçºçããã®ã
a,A1:G1,
k,B3,
ãã® A1:G1 ãš B3 ã®éšåã ããšããããšã§ãã
ã¡ãªã¿ã«æ¬åœã«LETãç¡ãã£ãæä»£ã¯
=ARRAYFORMULA(
REGEXEXTRACT(
JOIN(",",A1:G1,),
SUBSTITUTE(
SUBSTITUTE(
FILTER(
BASE(SEQUENCE(2^COUNTA(A1:G1),1,0),2,COUNTA(A1:G1)),
LEN(SUBSTITUTE(BASE(SEQUENCE(2^COUNTA(A1:G1),1,0),2,COUNTA(A1:G1)),1,))=B3
),0,"(.+?),"
),1,".+?,"
)
)
)ãããªåŒãæžããŠããŸããã
LET颿°ã§æŽçãããåŒã«æ¯ã¹ããšèªè§£ãã«ããã§ããã
åäœç¢ºèªã§åŒãåãããŠã¿ãŸãããã

ããåãã§ããïŒãCOMBIN颿°ã®çµæãš å šãã¿ãŒã³ã®è¡æ°ãåã£ãŠãŸãã
é åã®åŒã¯ 7ã€ã®èŠçŽ ãã7ã€åãåºãããšããå ŽåãBASE颿°ãäœ¿ãæ¹æ³ã ãš äžåºŠ 7^7 = 823543ïŒçŽ82äž3å) ãšãã èšå€§ãªããŒã¿ãäžåºŠçæããŠåŠçããŠããçºãéåžžã«åŠçã«æéããããåºãŸãã±ãŒã¹ããããŸããã
çµã¿åããã®å Žå㯠åã7ã€ã®èŠçŽ ãã1ã€åãåºãããšããå Žåã§ã 7ã€åãåºãããšããå Žåã§ãããããã®å Žåã BASE颿°ã§çæããããŒã¿ã¯ 2^7 = 128 ãšãã å°ãããµã€ãºã§ããçºãåŠçãæç¶æ©ãããã§ãã
次åã¯BASE颿°ã䜿ããªã æ°é¢æ°ã§ é åã»çµã¿åãããåºåããåŒã«ææŠ
ä»åã¯LETãLAMBDA颿°ç»å Žåã® çµã¿åãããå šãã¿ãŒã³åºåããåŒã玹ä»ããŸããã
ãŸãšãïŒLAMBDAç¡ãã§æžã é åãšçµã¿åããå šãã¿ãŒã³åºååŒ
âãLETã䜿ã£ãŠèŠããããã çµã¿åããå šãã¿ãŒã³åŒ
=ARRAYFORMULA(LET(
a,A1:G1,
k,B3,
n,COUNTA(a),
b,BASE(SEQUENCE(2^n,1,0),2,n),
_r0,"(.+?),",
_r1,".+?,",
x,FILTER(b,LEN(SUBSTITUTE(b,1,))=k),
y,SUBSTITUTE(SUBSTITUTE(x,0,_r0),1,_r1),
REGEXEXTRACT(JOIN(",",a,),y)
))ãã¡ãã¯çŸåšã§ãååéçšããåŒã§ãã
ã§ããååã®noteã® é åã®åŒ
âãLETã䜿ã£ãŠèŠããããã é åå šãã¿ãŒã³åŒ
=ARRAYFORMULA(LET(
array,A1:E1,
k,B3,
n,COUNTA(array),
x,BASE(SEQUENCE(n^k,1,0),n,k),
VLOOKUP(
INDEX(array,,1),
array,
FILTER(
MID(x,SEQUENCE(1,k),1)+1,
LEN(REGEXREPLACE(
CONCATENATE(SEQUENCE(n,1,0)),
"["&x&"]",
))=n-k
),
FALSE
)
))ãã¡ãã¯ãã¡ãã£ãšéããããã§ãããã
ãããããé åãšçµã¿åããã®åŒã®æ§æãå šç¶éãã£ãŠã®ãæ°ã«ãªããšããã
次é±ã¯ãããããLAMBDA ä»Â æ°é¢æ°ã䜿ã£ã BASE颿°ä»¥å€ã®æ¹æ³ã«ããé åã»çµã¿åããã®å šãã¿ãŒã³åŒïŒ1ã€ã®åŒã§åŒæ°ã§é åã»çµã¿åãããåãæ¿ããŠåºåå¯èœïŒã«ææŠããŠã¿ãŸãããïŒ
- #Excel
- #BASE
- #ã¹ãã¬ããã·ãŒã
- #GoogleWorkspace
- #Googleã¹ãã¬ããã·ãŒã
- #çµã¿åãã
- #map
- #lambda
- #index
- #VLOOKUP
- #2鲿°
- #XLOOKUP
- #Let
- #filter
- #Join
- #ARRAYFORMULA
- #é å
- #Split
- #sequence
- #sort
- #Len
- #mid
- #choose
- #substitute
- #BYROW
- #TEXTJOIN
- #TRANSPOSE
- #columns
- #COUNTA
- #CHOOSECOLS
- #CONCATENATE
- #REGEXREPLACE
- #REGEXEXTRACT
- #BYCOL
- #PERMUT
- #COMBIN
- #COMBINA
- #PERMUTATIONA
- #LAMBSA