schardt679
Board Regular
- Joined
- Mar 27, 2021
- Messages
- 58
- Office Version
- 365
- 2010
- Platform
- Windows
- Mobile
- Web
ATOCHARS returns an array of individual characters from a one dimensional array of text strings with an option to remove non-printing characters.
Horizontal ranges spill down rows and vertical ranges spill across columns. Thanks to RicoS and their TEXTTOARRAY function for the inspiration. Calls AONEDIM & ATRIM.
Horizontal ranges spill down rows and vertical ranges spill across columns. Thanks to RicoS and their TEXTTOARRAY function for the inspiration. Calls AONEDIM & ATRIM.
Excel Formula:
=LAMBDA(Array,Remove_Nonprinting,
LET(Arr, Array,
RemNon?, Remove_Nonprinting,
A1D?, AONEDIM(Arr),
AScan, AND(A1D?<>{"H","V"}),
Horiz?, A1D?="H",
NonScan, AND(RemNon?<>{1,0}),
NonMSG, "Nonprinting=1,0",
ERRORS, IFS(AScan, A1D?, NonScan, NonMSG, 1, 0),
ArrTrim, IF(RemNon?=1, ATRIM(Arr,), Arr),
Lengths, IFERROR(LEN(ArrTrim), 1),
MaxLen, MAX(Lengths, 1),
Start, SEQUENCE(IF(Horiz?, MaxLen, 1), IF(Horiz?, 1, MaxLen)),
Result, IF(Start>Lengths, "", MID(ArrTrim, Start, 1)),
Return, IF(ERRORS<>0, ERRORS, Result),
Return
)
)
LAMBDA Examples.xlsx | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | |||
1 | ATOCHARS | |||||||||||||||||
2 | ||||||||||||||||||
3 | Text | Result | ||||||||||||||||
4 | Hello | H | e | l | l | o | ||||||||||||
5 | There! | T | h | e | r | e | ! | |||||||||||
6 | ||||||||||||||||||
7 | #N/A | #N/A | ||||||||||||||||
8 | I am 27. | I | a | m | 2 | 7 | . | |||||||||||
9 | ||||||||||||||||||
10 | Data is a vertical array | |||||||||||||||||
11 | Result spills horizontally | |||||||||||||||||
12 | Nonprinting characters aren't removed | |||||||||||||||||
13 | =ATOCHARS(B4:B8,) | |||||||||||||||||
14 | ||||||||||||||||||
15 | ||||||||||||||||||
16 | ||||||||||||||||||
17 | Text | Result | ||||||||||||||||
18 | Hello | H | e | l | l | o | ||||||||||||
19 | There! | T | h | e | r | e | ! | |||||||||||
20 | ||||||||||||||||||
21 | #N/A | #N/A | ||||||||||||||||
22 | I am 27. | I | a | m | 2 | 7 | . | |||||||||||
23 | ||||||||||||||||||
24 | Data is a vertical array | |||||||||||||||||
25 | Result spills horizontally | |||||||||||||||||
26 | Nonprinting characters are removed | |||||||||||||||||
27 | =ATOCHARS(B18:B22, 1) | |||||||||||||||||
28 | ||||||||||||||||||
29 | ||||||||||||||||||
30 | ||||||||||||||||||
31 | Text | Hello | There! | #N/A | I am 27. | |||||||||||||
32 | ||||||||||||||||||
33 | Result | T | #N/A | I | ||||||||||||||
34 | H | h | ||||||||||||||||
35 | e | e | a | |||||||||||||||
36 | l | r | m | |||||||||||||||
37 | l | e | ||||||||||||||||
38 | o | |||||||||||||||||
39 | ! | |||||||||||||||||
40 | ||||||||||||||||||
41 | ||||||||||||||||||
42 | 2 | |||||||||||||||||
43 | 7 | |||||||||||||||||
44 | . | |||||||||||||||||
45 | ||||||||||||||||||
46 | Data is a horizontal array | |||||||||||||||||
47 | Result spills vertically | |||||||||||||||||
48 | Nonprinting characters aren't removed | |||||||||||||||||
49 | =ATOCHARS(C31:G31,) | |||||||||||||||||
50 | ||||||||||||||||||
ATOCHARS |
Cell Formulas | ||
---|---|---|
Range | Formula | |
D4:O8 | D4 | =ATOCHARS(B4:B8,) |
B7,F31,B21 | B7 | =NA() |
B13,B27 | B13 | =FORMULATEXT(D4) |
D18:K22 | D18 | =ATOCHARS(B18:B22, 1) |
C33:G44 | C33 | =ATOCHARS(C31:G31,) |
B49 | B49 | =FORMULATEXT(C33) |
Dynamic array formulas. |
Upvote
0