2024/11/7ïŒãšãããããã¿ãŒã³ã§èŠããLET&LAMBDAååž°åŒããèªç±ã«æå®ã§ããã«ãŒããæ°åŒã§ã
âªæ¯é±æšæ12:15ïœZOOMã§éå¬äžïŒExcel颿°ãå匷äŒã®å 容ã§ããã
âLETïŒLAMBDAååž°ã«ããã«ãŒãåŒ
â èŠããïŒäœ¿ããããã«ãªãïŒã¡ãªãã
ã«ãŒãåŠçå ã§äœ¿ããåŒæ°ãäœåã§ãèšå®ã§ãã
æ¡ä»¶æå®ã§ã®ã«ãŒãçµäºãæå®ã§ãã
REDUCE颿°ãªã©ã䜿ã£ãã«ãŒãã ãšãåŒæ°ããinitial_valueããšãarrayãã®2ã€ãããªããåŠçã«äœ¿ããåŒæ°ãšãªããšå®è³ª1ã€ãããªããããªãã®ã
ãã®ç¹ãLAMBDA颿°èªäœã«ã¯ãããªã«åŒæ°ã®æ°ã®å¶éã¯ãªãã®ã§ïŒæå€§ 253 åããã by MSå
¬åŒïŒãå²ãšããããæŸé¡ã§ããã
ãŸããã察象ããªãã£ããçµäºããããã""ã ã£ããçµäºãããããšãããããªâæ¡ä»¶âã§ã«ãŒããçµäºãããäºãã§ããã®ã§ãæ¡ä»¶ãæºãããŸã§äœåºŠã§ãã«ãŒãããŠãããã®ã倧ãããïŒâ»è² è·çã«ããäžéã¯ããŠãããïŒ
åŠçåæ°ãæå®ããã¿ã€ãã®REDUCEã«ãŒãã ãšã第2åŒæ°ã®é
åã®äžããäžãŸã§ïŒ1ã¿ãŒã³ïŒãã£ããçµããããããã¯ç¡çããäœã¿ãŒã³ãåãããšãåºæ¥ããã©ãçµå±ã¯ã«ãŒãåæ°ãæå®ããªãããªããªãã®ã§å€§ããªæ°åã§äžæŠç¡é§ãªåŠçããããªããšãããªãã£ãããLAMBDAåŒã®å
¥ãåã«ãªã£ãŠãããããã£ã¡ã®æ¹ããããããåŒã«ãªããã¡âŠã
â åºæ¬ãã¿ãŒã³ã®ããŒã¹åŒ
PCã®èŸæžç»é²ã§ãäœã«ã§ãããŠã奜ãã«äœ¿ãããããïŒãŸ(ã»Ïã»)ã
âŒã¡ã€ã³éšå
=LET(_r,LAMBDA(_r,ã第1åã,ã第2åã,IF(â)),_r(_r,ã第1åæå€ã,ã第2åæå€ã))
âŒIFã® â ã®éšå
ãçµäºæ¡ä»¶ã,ãçµäºæåŠçã,_r(_r,ã第1çšåŠçã,ã第2çšåŠçã)ã第1åãâŠã第1åŒæ°ãã®ååããããŠå ¥ãã
ã第2åãâŠã第2åŒæ°ãã®ååããããŠå ¥ãã
ã第1åæå€ãâŠã«ãŒãéå§æç¹ã®ã第1åŒæ°ãã®åæå€ãå ¥ãã
ã第2åæå€ãâŠã«ãŒãéå§æç¹ã®ã第2åŒæ°ãã®åæå€ãå ¥ãã
ãçµäºæ¡ä»¶ãâŠã©ããªã£ããšãã«ã«ãŒããçµããããæå®ãã
ãçµäºæåŠçãâŠçµäºæ¡ä»¶ãæºãããå Žåãã©ãããåŠçãããã®ãïŒïŒãŸãã¯äœã衚瀺ãããã®ãïŒãæå®ãã
ã第1çšåŠçãâŠçµäºæ¡ä»¶ãæºãããªãã£ãå Žåã第1åŒæ°ã®å€ïŒoré åïŒãã©ããã颚ã«å€åãããŠæ¬¡ãžã«ãŒããããããæå®ãã
ã第2çšåŠçãâŠçµäºæ¡ä»¶ãæºãããªãã£ãå Žåã第2åŒæ°ã®å€ïŒoré åïŒãã©ããã颚ã«å€åãããŠæ¬¡ãžã«ãŒããããããæå®ãã
â» äŸã§ã¯åŒæ°ã¯2ã€ã ãã©ã3ã€ã§ã4ã€ã§ãå¿ èŠãªã ãå¢ãããŠOKã
â» çµäºæ¡ä»¶ãªãExcelååž°åŒã¯æãç«ã¡ãŸããã
Excelã®é¢æ°åŒã¯ãâçããåºãªãâåŒã¯è¯ããæªãããšã©ãŒã«ãªããŸãã
ã«ãŒããç¶ããç¶æ
ïŒæ·±ãæœãç¶ããç¶æ
ïŒã§ã¯çããã§ãªãã®ã§ã
ãäœåã«ãŒããããçµãããã ãšãããšã©ãŒã ã£ããçµäºãã ãšãã
çµäºãããæ¡ä»¶ãå
¥ããå¿
èŠããããŸãã
â LETïŒLAMBDAååž°åŒã®å ·äœäŸïŒ{1;2;4;8;âŠ512;1024} é åïŒ
âŒã«ãŒããããåæ°ãæå®ãããã¿ãŒã³äŸ
=LET(_r,LAMBDA(_r,arr,cnt,
IF(cnt=10,
arr,
_r(_r,VSTACK(arr,TAKE(arr,-1)*2),cnt+1))),
_r(_r,1,0))Â é
åïŒarrïŒã®åæå€ãã1ããã«ãŠã³ãïŒcntïŒã®åæå€ãã0ãã§éå§ã
é
åãšé
åã®äžçªäžã®æ°å€ã2åã«ãããã®ãVSTACKã§é£çµãããã®ãã
次ã®ã«ãŒãã®é
åïŒarrïŒãšããŠåŠçãããã
ããã10ååã«ãŒããããŠãæçµçã«ã§ãããã£ãé
åïŒarrïŒãåºåã
âŒçµäºæ¡ä»¶ãæå®ãããã¿ãŒã³äŸâ
=LET(_r,LAMBDA(_r,arr,next,
IF(next>1000,
VSTACK(arr,next),
_r(_r,VSTACK(arr,next),next*2))),
_r(_r,1,1*2))é
åïŒarrïŒã®åæå€ãã1ããäžã«é£çµãããæ¬¡ã®çžæãšãªã次ã®å€ïŒnextïŒã®åæå€ãã1*2ãã§éå§ã
é
åïŒarrïŒã¯æ¬¡ã®å€ïŒnextïŒãšé£çµã次ã®ã«ãŒãã®é
åïŒarrïŒãšããŠåŠçãããnextã®å€ã2åããã®ã次ã®ã«ãŒãã®æ¬¡ã®å€ïŒnextïŒãšããŠåŠçã
é£çµãããæ¬¡ã®å€ïŒnextïŒã1,000ãè¶
ããå Žåãé£çµããããã®ãåºåã
è¶
ããªãå Žåã¯ã«ãŒãåŠçãç¶ããã
â»åæå€ã®æç¹ã§ãæåãšãããè³å
èšç®ãšãããã¡ãã£ãŠãïœ
ãæ¬¡ã®å€ãç°¡åã«ããããããªåŠçå
容ãªããããããæžãæ¹ã§ã
ãå¥ã«ãããšã¯æãïŒãã ãæ Œå¥œããã¯ãªãâŠïŒ
âŒçµäºæ¡ä»¶ãæå®ãããã¿ãŒã³äŸâ¡
=LET(_r,LAMBDA(_r,arr,
IF(@TAKE(arr,-1)>1000,
arr,
_r(_r,VSTACK(arr,@TAKE(arr,-1)*2)))),
_r(_r,1))åæå€ã¯ãé
åïŒarrïŒã®ã1ãã®ã¿ã§éå§ã
é
åïŒarrïŒãšâé
åã®äžçªäžã®æ°åâã«2ãããããã®ãVSTACKã§é£çµã
âé
åã®äžçªäžã®æ°åâã1,000ãè¶
ããŠããããçŸæç¹ã®é
åïŒarrïŒãåºåã
è¶
ããªãå Žåã¯ã«ãŒãåŠçãç¶ããã
â»TAKE颿°ã®åã«â@âãã€ããŠããã®ã¯é
ååŠçã®é¢ä¿ã§ãã¡ãããš
ãé
åã§ã¯ãªãåäœã®ãå€ããšããŠæ±ããªããšã第2åŒæ°ãšç¬¬3åŒæ°ã
ãå€ãæ¹ã®é
åæ æ°ã«åŒãããããŠãé
åæ ãèªåæ¡åŒµãããç¶æ
ã§
ãæ¬¡ã®ã«ãŒãã«é²ãã§ããŸããäžèŠãªNAããŒã¿ãä»ããŠããŸãããã§ãã
ïŒãã®åŒã®å Žåã@1ã€åã«ã€ã1æ åãæ¯ã«ãŒãæ¯ã«æ¡åŒµãããç¶æ
ïŒ
â»ã¡ãªã¿ã«ãäœéãã§NAãšã©ãŒã®ããŒã¿ãåºããããªç¶æ
ã«ãªããš
ã#NUM!ãšã©ãŒã«ãªãäºããããŸãã
ãïŒâã®åŒã®å Žå2ã€ãšã@ãæ¶ããšç¢ºèªã§ããïŒ
âããšãã
ãŸããšããããã
äœãšãªãã§ãäœ¿ãæ¹ãåãã£ããã䜿ã£ãŠã¿ãŠãã ãããªãŸ(ã»Ïã»)ã
ãçµäºæ¡ä»¶ãæå®ãããã¿ãŒã³äŸâ¡ãã®@ã€ããä»ããªãã«é¢ããŠã¯ã
çŽæ¥LAMBDAåŒã«ã¯é¢ä¿ãªããšããã ã¡ã€ã³ã¯é
åã®åãçãªéšåã§ããã
ã«ãŒããããŠããããšã§çµæçã«å€§ããªåœ±é¿ãåºãŠããŸãéšåã»ã»ã»ã
é
åãIFã®åãã«ã€ããŠã¯ãéå»ã®å匷äŒã§ã¯ãã£ããã©ããã®é ã¯ãŸã
noteãåããŠãªãã£ãããå匷äŒã¯æ¯ååãäººãæ¥ããŠããèš³ã§ã¯ãªãã®ã§
ãŸããã®ãã¡ãæ¹ããŠãé
åã®åããåããIF颿°ãåãããŸããããã
次åã¯ããä»çµã¿ãçè§£ããªããšèŠããããªãç§ã¿ãããªé¢åããã人åãã®LET&LAMBDAååž°åŒè§£èª¬ãäºå®
âŠã§ã¯ãããã ãã©ãããŸãåºæ¥ãããªðŠâŠãšãããæéè¶³ããã®ãïŒðŠ