Provide a formula to generate the sequence shown (A till Z only)
📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 33
Challenge Difficulty: ⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn
Solving the challenge of Generate A to Z letter sequence with Power Query
Power Query solution 1 for Generate A to Z letter sequence, proposed by Matthias Friedmann:
let
Source = {"A" .. "Z"},
#"Converted to Table" = Table.FromList(
Source,
Splitter.SplitByNothing(),
{"ABC"},
null,
ExtraValues.Error
),
#"Added Custom" = Table.AddColumn(
#"Converted to Table",
"Custom",
each
let
abc = [ABC],
number = Character.ToNumber(abc) - 64,
list = List.Transform(
{1 .. 26},
each if _ > 9 then abc & "-" & Text.From(_) else abc & "-0" & Text.From(_)
)
in
List.Transform(list, each if Number.From(Text.End(_, 2)) > number then null else _)
),
#"Extracted Values" = Table.TransformColumns(
#"Added Custom",
{"Custom", each Text.Combine(List.Transform(_, Text.From), ","), type text}
),
#"Split Column by Delimiter" = Table.SplitColumn(
#"Extracted Values",
"Custom",
Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv),
List.Transform({1 .. 26}, each Text.From(_))
)
in
#"Split Column by Delimiter"Power Query solution 2 for Generate A to Z letter sequence, proposed by Matthias Friedmann:
if _>9 then abc &"-"&Text.From(_)
else abc &"-0"&Text.From(_)
abc &"-"& Text.PadStart(Text.From(_), 2, "0")
Power Query solution 3 for Generate A to Z letter sequence, proposed by Victor Wang:
let
CreateCols = List.Accumulate(
{0 .. 25},
{},
(state, current) =>
state
& {
List.Repeat({null}, current)
& List.RemoveFirstN(
List.Transform(
{"A" .. "Z"},
each _ & "-" & Text.PadStart(Text.From(current + 1), 2, "0")
),
current
)
}
),
MakeTable = Table.FromColumns(CreateCols)
in
MakeTablePower Query solution 4 for Generate A to Z letter sequence, proposed by Venkata Rajesh:
let
Source = Table.RenameColumns(
Table.FromList(
List.Transform({"A" .. "Z"}, each _ & "-" & "01"),
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
{{"Column1", "Column0"}}
),
Output = Table.ExpandTableColumn(
Table.AddColumn(
Source,
"Custom",
each
let
_char = Text.Start([Column0], 1)
in
Table.Transpose(
Table.FromList(
List.Transform(
{2 .. Table.PositionOf(Source, _) + 1},
each _char & "-" & Text.PadStart(Text.From(_), 2, "0")
),
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
)
)
),
"Custom",
List.Transform({1 .. 25}, each "Column" & Text.From(_)),
List.Transform({1 .. 25}, each "Column" & Text.From(_))
),
Result = Table.RenameColumns(
Output,
List.Zip({Table.ColumnNames(Output), List.Transform({1 .. 26}, each "Column" & Text.From(_))})
)
in
ResultPower Query solution 5 for Generate A to Z letter sequence, proposed by Melissa de Korte:
let
s = {"A" .. "Z"},
a = List.Transform(
s,
(x) =>
List.Transform(
{1 .. List.PositionOf(s, x) + 1},
(y) =>
Record.FromList({x & "-" & Text.PadStart(Text.From(y), 2, "0")}, {"Col " & Text.From(y)})
)
),
t = Table.Combine(
List.Transform(List.Transform(a, each Record.Combine(_)), each Table.FromRecords({_}))
)
in
tPower Query solution 6 for Generate A to Z letter sequence, proposed by Melissa de Korte:
let
s = {"A" .. "Z"},
a = List.TransformMany(
s,
each {
Record.Combine(
List.Transform(
{1 .. List.PositionOf(s, _) + 1},
(y) =>
Record.FromList(
{_ & "-" & Text.PadStart(Text.From(y), 2, "0")},
{"Col " & Text.From(y)}
)
)
)
},
(x, y) => Table.FromRecords({y})
),
t = Table.Combine(a)
in
tPower Query solution 7 for Generate A to Z letter sequence, proposed by Hristo Tsenov:
let
Source = {"A" .. "Z"},
Numbers = Table.AddIndexColumn(
Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Index",
1,
1,
Int64.Type
),
Combine = Table.AddColumn(
Table.ExpandListColumn(Table.AddColumn(Numbers, "Custom", each {1 .. [Index]}), "Custom"),
"Merged",
each Text.Combine({[Column1], Text.From([Custom], "en-US")}, "-"),
type text
),
Result = Table.RemoveColumns(
Table.Pivot(
Table.TransformColumnTypes(
Table.RemoveColumns(Combine, {"Index"}),
{{"Custom", type text}},
"en-US"
),
List.Distinct(Table.TransformColumnTypes(Combine, {{"Custom", type text}}, "en-US")[Custom]),
"Custom",
"Merged"
),
{"Column1"}
)
in
ResultSolving the challenge of Generate A to Z letter sequence with Excel
Excel solution 1 for Generate A to Z letter sequence, proposed by Rick Rothstein:
=MAKEARRAY(26,
26,
LAMBDA(r,
c,
LEFT(CHAR(
64+r
)&TEXT(
c,
"-00"
),
4*(r>=c))))Excel solution 2 for Generate A to Z letter sequence, proposed by John V.:
=MAKEARRAY(
26,
26,
LAMBDA(
r,
c,
REPT(
CHAR(
64+r
)&TEXT(
c,
"-00"
),
r>=c
)
)
)Excel solution 3 for Generate A to Z letter sequence, proposed by محمد حلمي:
=INDEX(
INDEX(
CHOOSECOLS(
CHAR(
SEQUENCE(
26,
,
65
)
),
SEQUENCE(
,
26,
,
0
)
)&
TEXT(
SEQUENCE(
,
26
),
"-00"
),
ROW(
A1
)
),
SEQUENCE(
,
ROW(
A1
)
)
)Excel solution 4 for Generate A to Z letter sequence, proposed by محمد حلمي:
=
LET(
b,
SEQUENCE(
,
26
),
c,
SEQUENCE(
26,
,
0,
0
),
IF(
b<=TOCOL(
b
),
CHAR(
SEQUENCE(
,
26,
65
)+c
)
&"-"&TEXT(
b+c,
"00"
),
""
)
)Excel solution 5 for Generate A to Z letter sequence, proposed by Aditya Kumar Darak 🇮🇳:
= MAKEARRAY(
26,
26,
LAMBDA(
r,
c,
IF(
c > r,
"",
CHAR(
64 + r
) & TEXT(
c,
"-00"
)
)
)
)Excel solution 6 for Generate A to Z letter sequence, proposed by Aditya Kumar Darak 🇮🇳:
= LET(
_array,
MOD(
SEQUENCE(
26,
26
) - 1,
26
) + 1,
IF(
_array > TRANSPOSE(
_array
),
"",
CHAR(
64 + TRANSPOSE(
_array
)
)
& TEXT(
_array,
"-00"
)
)
)Excel solution 7 for Generate A to Z letter sequence, proposed by Aditya Kumar Darak 🇮🇳:
= IFERROR(
DROP(
REDUCE(
"",
SEQUENCE(26),
LAMBDA(
a,
b,
VSTACK(
a,
CHAR(64 + b) & "-" & TEXT(SEQUENCE(1, b), "00")))),
1),
"")Excel solution 8 for Generate A to Z letter sequence, proposed by Oscar Mendez Roca Farell:
=IFERROR(CHAR(ROW(
A65
)*(ROW(
A1
)>=COLUMN(
A1
)))&"-"&TEXT((ROW(
A1
)>=COLUMN(
A1
))*COLUMN(
A1
),
"00"),
"")
Or alternatively selecting range A1:Z26 and pressing CTRL+SHIFT+ENTER:
=IFERROR(CHAR(ROW(
A65:A90
)*(ROW(
A1:Z26
)>=COLUMN(
A1:Z26
)))&"-"&TEXT((ROW(
A1:Z26
)>=COLUMN(
A1:Z26
))*COLUMN(
A1:Z26
),
"00"),
"")Excel solution 9 for Generate A to Z letter sequence, proposed by Jaroslaw Kujawa:
=IF(
ROW() less than COLUMN(),
"",
CHAR(
64+ROW()
)&"-"&TEXT(
COLUMN(),
"00"
)
)Excel solution 10 for Generate A to Z letter sequence, proposed by Jardiel Euflázio:
=LET(
a,
SEQUENCE(
26
),
b,
SEQUENCE(
,
26
),
IF(
a>=b,
CHAR(
SEQUENCE(
26,
,
65
)
)&TEXT(
b,
"-00"
),
""
)
)Excel solution 11 for Generate A to Z letter sequence, proposed by Victor Momoh (MVP, MOS, R.Eng):
=MAKEARRAY(
26,
26,
LAMBDA(
r,
c,
IF(
c>r,
"",
CHAR(
64+r
)&"-"&TEXT(
c,
"00"
)
)
)
)Excel solution 12 for Generate A to Z letter sequence, proposed by Cary Ballard, DML:
=MAKEARRAY(
26,
26,
LAMBDA(
r,
c,
IF(
c > r,
"",
CHAR(
r + 64
) & TEXT(
c,
"-00"
)
)
)
)Excel solution 13 for Generate A to Z letter sequence, proposed by Cary Ballard, DML:
=LET(
a, SEQUENCE(26, , 65),
b, SEQUENCE(, 26, 65),
c, IF(a >= b, a),
IF(c, CHAR(c) & "-" & TEXT(b, "00"), "")
)Excel solution 14 for Generate A to Z letter sequence, proposed by Juliano Santos Lima:
=LAMBDA(
Row,
Col,
IF(
Row
Excel solution 15 for Generate A to Z letter sequence, proposed by Riley Johnson:
= LAMBDA(_generate,
LET(
_ALPHA_NUM, 26,
_ALPHA, CODE("A"),
if_zero, LAMBDA(x,y, IF( x = 0, y, x) ),
stacker, LAMBDA(stack,_index,
LET(
_row, SEQUENCE(,_index ),
_char, REPT(
CHAR( if_zero( MOD( _index, _ALPHA_NUM ), _ALPHA_NUM ) + _ALPHA - 1 ),
INT( ( _index - 1 ) / _ALPHA_NUM ) + 1
),
_result, VSTACK(
EXPAND( stack, ,_index, "" ),
_char & "-" & IF( LEN(_row) < 2, "0" & _row, _row )
),
_result
)
),
firstrow, IF( _generate > 0, "A" & "-" & "01", "" ),
IF( _generate > 1,
REDUCE( firstrow, DROP( SEQUENCE( _generate ), 1 ),
stacker
),
firstrow
)
)
)( 26 * 3 )Excel solution 16 for Generate A to Z letter sequence, proposed by Nicolas Brabant:
=MAKEARRAY(
26;
26;
LAMBDA(
l;
c;
SI(
l>=c;
CAR(
l+64
)&TEXTE(
c;
"-00"
);
""
)
)
)Excel solution 17 for Generate A to Z letter sequence, proposed by sharad Gupta:
=IF(
COLUMN()>ROW(
A1
),
"",
CHAR(
64+ROW(
A1
)
)&"-0"&COLUMN()
)Excel solution 18 for Generate A to Z letter sequence, proposed by N’rele Ferdinand Attobra:
=CHAR(
64+ROW()
)&TEXT(
SEQUENCE(
,
ROW()
),
"-00"
)Excel solution 19 for Generate A to Z letter sequence, proposed by Romeo Costillas:
=IF(
ROW()>=COLUMN(),
CHAR(
ROW()+64
)&"-"&TEXT(
COLUMN(),
"00"
),
""
)