CUSIP: Difference between revisions
Content added Content deleted
(→{{header|Excel LAMBDA}}: Added a draft using the LAMBDA() function which is defined in recent Excel beta builds.) |
m (→Excel LAMBDA: (Preferred AND to IF)) |
||
Line 1,198: | Line 1,198: | ||
(See [https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/ LAMBDA: The ultimate Excel worksheet function]) |
(See [https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/ LAMBDA: The ultimate Excel worksheet function]) |
||
<lang lisp> |
<lang lisp>=LAMBDA(s, |
||
=LAMBDA(s, |
|||
LET( |
LET( |
||
ns, VLOOKUP( |
ns, VLOOKUP( |
||
CHARS(s), CUSIPMAP, 2, FALSE |
CHARS(s), CUSIPMAP, 2, FALSE |
||
), |
), |
||
⚫ | |||
AND( |
|||
9 = COLUMNS(ns), |
|||
LET( |
LET( |
||
firstEight, INITCOLS(ns), |
firstEight, INITCOLS(ns), |
||
ixs, SEQUENCE(1, 8), |
ixs, SEQUENCE(1, 8), |
||
evensDoubled, IF(ISEVEN(ixs), |
evensDoubled, IF(ISEVEN(ixs), |
||
2 * INDEX(firstEight, 1, ixs), |
2 * INDEX(firstEight, 1, ixs), |
||
INDEX(firstEight, 1, ixs) |
INDEX(firstEight, 1, ixs) |
||
), |
), |
||
LASTCOL(ns) = MOD( |
LASTCOL(ns) = MOD( |
||
10 - MOD( |
10 - MOD( |
||
Line 1,221: | Line 1,221: | ||
QUOTIENT(evensDoubled, 10), |
QUOTIENT(evensDoubled, 10), |
||
MOD(evensDoubled, 10) |
MOD(evensDoubled, 10) |
||
), |
), |
||
10 |
10 |
||
), |
), |
||
10 |
10 |
||
) |
) |
||
) |
) |
||
⚫ | |||
) |
) |
||
) |
) |