Draw inverted right angled triangles as shown for an r value. r is number of rows. So, if r=5, then 5 rows need to be generated. I have shown examples for various r values for testing. Also color is for illustration only, you need not use any conditional formatting for this.
📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 372
Challenge Difficulty: ⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn
Solving the challenge of Draw Inverted Triangle Shape with Power Query
Power Query solution 1 for Draw Inverted Triangle Shape, proposed by John V.:
let
n = 7,
R = List.Transform(List.Reverse({1..n}), (x)=> {1+(x*x-x)/2..x*(x+1)/2})
in
Table.FromColumns(List.Zip(R))
Blessings!
Power Query solution 2 for Draw Inverted Triangle Shape, proposed by John V.:
let
n = 7,
a = List.Accumulate({2..n}, {1}, (s, c) => s & {List.Last(s) + c - 1}),
R = List.Reverse(List.Transform({1..n}, each {a{_ - 1}.._ * (_ + 1) / 2}))
in
Table.FromColumns(List.Zip(R))
Blessings!
Power Query solution 3 for Draw Inverted Triangle Shape, proposed by John V.:
let
n = 7,
R = List.Generate( ()=> [i = 2, c = 2, r = {1}], each [i] < n + 2, each [i = [i] + 1, c = [c] + [i], r = {[c]..c - 1}], each [r] )
in
Table.FromColumns(List.Zip(List.Reverse(R)))
Blessings!
Power Query solution 4 for Draw Inverted Triangle Shape, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
A = 7,
B = List.Sum({1..A}),
C = {1..B},
Sol = Table.FromColumns(List.Zip(List.Reverse(List.Transform({0..A-1},
each List.FirstN(List.RemoveFirstN(C, List.Sum({0.._})), _+1)))))
in
Sol
o utilizar esta función e invocarla con los valores requeridos...
(n)=>
let
A = n,
B = List.Sum({1..A}),
C = {1..B},
Sol = Table.FromColumns(List.Zip(List.Reverse(List.Transform({0..A-1},
each List.FirstN(List.RemoveFirstN(C, List.Sum({0.._})), _+1)))))
in
Sol
Show translation
Show translation of this comment
Power Query solution 5 for Draw Inverted Triangle Shape, proposed by Luan Rodrigues:
let
r = 4,
t = Text.Length(Text.Combine(List.Transform({1 .. r}, each Text.Repeat("a", _)))),
l = List.Transform(
{0 .. r - 1},
each List.FirstN(List.RemoveFirstN({1 .. t}, List.Sum({0 .. _})), _ + 1)
),
res = Table.Transpose(Table.FromColumns(List.Reverse(l)))
in
res
Power Query solution 6 for Draw Inverted Triangle Shape, proposed by Ramiro Ayala Chávez:
let
t = Excel.CurrentWorkbook(){[Name = "Table4"]}[Content],
a = t[r]{0},
b = List.Generate(
() => [i = 1, j = 1],
each [i] <= a,
each [i = [i] + 1, j = [i] + [j] + 1],
each [j]
),
c = {List.First(b) .. List.Last(b)},
d = List.Generate(
() => [i = 1],
each [i] <= List.Count(b),
each [i = [i] + 1],
each List.Repeat({[i]}, [i])
),
e = Table.FromColumns({c, List.Combine(d)}, {"C1", "C2"}),
f = Table.Group(e, {"C2"}, {{"G", each _}})[G],
g = List.Reverse(List.Transform(f, each Table.SelectColumns(_, "C1")[C1])),
Sol = Table.Transpose(Table.FromColumns(g))
in
Sol
Power Query solution 7 for Draw Inverted Triangle Shape, proposed by Rafael González B.:
let
LB = {1..r},
LS = {1..List.Sum(LB)},
LG = List.Generate(
() => [OS = 0, C = 1],
each [C] <= r + 1,
each [
OS = [OS] + [C],
C = [C] + 1,
L = List.Range(LS, [OS], [C])
],
each [L]
),
LR = List.Reverse(List.RemoveFirstN(LG)),
Result = Table.FromColumns(List.Zip(LR))
in
Result
🧙♂️🧙♂️🧙♂️
Happy Weekend!!!
Power Query solution 8 for Draw Inverted Triangle Shape, proposed by Glyn Willis:
let
Source = Table.FromList({2, 3, 4, 7}, Splitter.SplitByNothing(), {"R"}),
#"Added Custom" = Table.AddColumn(
Source,
"Custom",
each [
L = Table.Combine(
List.Reverse(
let
I = Int64.From([R])
in
List.Generate(
() => [R = I, T = 1, N = {1 .. T}, M = List.Max(N)],
each [R] > 0,
each [R = [R] - 1, T = [T] + 1, N = {[M] + 1 .. [M] + T}, M = List.Max(N)],
each Table.FromRows(
{{I} & [N]},
{"R"} & List.Transform({1 .. [T]}, (x) => "Column" & Text.From(x))
)
)
)
)
][L]
),
Custom = Table.Combine(#"Added Custom"[Custom])
in
Custom
Power Query solution 9 for Draw Inverted Triangle Shape, proposed by Arden Nguyen, CPA:
let
n = 7,
a = List.TransformMany(
{0 .. n - 1},
each {1 + _ * (_ + 1) / 2},
(x, y) => Table.FromRows({List.Numbers(y, x + 1)})
),
b = Table.Combine(List.Reverse(a))
in
b
Solving the challenge of Draw Inverted Triangle Shape with Excel
Excel solution 1 for Draw Inverted Triangle Shape, proposed by Bo Rydobon 🇹🇭:
=LET(s,SEQUENCE(A14),t,TOROW(s),SORT(IF(s
Excel solution 2 for Draw Inverted Triangle Shape, proposed by Bo Rydobon 🇹🇭:
=LET(
s,
SEQUENCE(
A9,
,
0
),
t,
TOROW(
s
),
SORT(
IF(
s
Excel solution 3 for Draw Inverted Triangle Shape, proposed by Rick Rothstein:
=IFNA(REDUCE(,
SEQUENCE(
A9
),
LAMBDA(a,
x,
VSTACK(SEQUENCE(,
x,
1+x*(x-1)/2),
a))),
"")
Excel solution 4 for Draw Inverted Triangle Shape, proposed by Rick Rothstein:
=TEXTSPLIT(TEXTJOIN("/",
,
MAP(SEQUENCE(
A2,
,
A2,
-1
),
LAMBDA(x,
TEXTJOIN(" ",
,
SEQUENCE(,
x,
(x*x-x+2)/2))))),
" ",
"/",
,
,
"")
Excel solution 5 for Draw Inverted Triangle Shape, proposed by John V.:
=LET(
s,
SEQUENCE(
A2
),
c,
s
Excel solution 6 for Draw Inverted Triangle Shape, proposed by John V.:
= 7
d = pd.DataFrame(list(range(1+sum(range(i)),1+i*(i+1)//2)) for i in range(n,0,-1)).fillna('')
Excel solution 7 for Draw Inverted Triangle Shape, proposed by محمد حلمي:
=LET(
n,
A14,
s,
SEQUENCE(
n
)-1,
v,
TOROW(
s
),
IF(
n-v>s,
SORT(
SCAN(
1,
s,
LAMBDA(
a,
d,
a+d
)
),
,
-1
)+v,
""
)
)
For all
=DROP(
REDUCE(
0,
A2:A20,
LAMBDA(
q,
n,
IFNA(
VSTACK(
q,
LET(
s,
SEQUENCE(
n
)-1,
v,
TOROW(
s
),
IF(
n,
IF(
n-v>s,
SORT(
SCAN(
1,
s,
LAMBDA(
a,
d,
a+d
)
),
,
-1
)+v,
""
),
""
)
)
),
""
)
)
),
1
)
Excel solution 8 for Draw Inverted Triangle Shape, proposed by Kris Jaganah:
=LET(a,
SEQUENCE(
A14,
,
A14,
-1
),
b,
--(a<=TOROW(
a
)),
SORT(
IF(
b,
SCAN(
0,
b,
SUM
),
""
),
,
-1
))
Excel solution 9 for Draw Inverted Triangle Shape, proposed by Timothée BLIOT:
=SORTBY(
REDUCE(
1,
SEQUENCE(
A2-1
),
LAMBDA(
a,
v,
IFERROR(
VSTACK(
a,
SEQUENCE(
1,
v+1
)+MAX(
a
)
),
""
)
)
),
SEQUENCE(
A2
),
-1
)
Excel solution 10 for Draw Inverted Triangle Shape, proposed by Hussein SATOUR:
=TEXTSPLIT(LET(a,
SEQUENCE((A2*(A2+1))/2),
b,
SEQUENCE(
A2,
,
A2,
-1
),
c,
SCAN(
-A2,
b,
SUM
)+SEQUENCE(
A2,
,
0
),
CONCAT(
MAP(
b,
c,
LAMBDA(
x,
y,
TEXTJOIN(
",",
,
TAKE(
DROP(
a,
-y
),
-x
)
)&"/"
)
)
)),
",",
"/",
1,
,
"")
Excel solution 11 for Draw Inverted Triangle Shape, proposed by Sunny Baggu:
=LET(
_s,
SEQUENCE(
A14,
,
0
),
_v,
SCAN(
1,
_s,
LAMBDA(
a,
v,
a + v
)
),
_tbl,
_v + TOROW(
_s
),
SORT(
IF(
_s < TOROW(
_s
),
"",
_tbl
),
,
-1
)
)
Excel solution 12 for Draw Inverted Triangle Shape, proposed by LEONARD OCHEA 🇷🇴:
=LET(n,
A14,
IFNA(DROP(REDUCE("",
n-SEQUENCE(
n
)+1 ,
LAMBDA(a,
b,
VSTACK(a,
SEQUENCE(,
b,
(b-1)*b/2+1)))),
1),
""))
Excel solution 13 for Draw Inverted Triangle Shape, proposed by LEONARD OCHEA 🇷🇴:
=LET(n,
A14,
x,
SEQUENCE(
n
),
s,
n-x+1,
t,
(s-1)*s/2+TOROW(
x
),
IF(t<=s*(s+1)/2,
t,
""))
Excel solution 14 for Draw Inverted Triangle Shape, proposed by Abdallah Ally:
=LET(
a,
A9,
DROP(
IFNA(
REDUCE(
1,
SEQUENCE(
a,
,
a,
-1
),
LAMBDA(
x,
y,
VSTACK(
x,
SEQUENCE(
,
y,
y^2+1-SUM(
SEQUENCE(
y
)
)
)
)
)
),
""
),
1
)
)
Excel solution 15 for Draw Inverted Triangle Shape, proposed by Charles Roldan:
=LAMBDA(
x,
LET(
n,
x + 1,
DROP(
MAKEARRAY(
n,
n,
LAMBDA(
i,
j,
REPT(
IFERROR(
COMBIN(
n - i,
2
),
) + j,
i + j <= n
)
)
),
-1,
-1
)
)
)(A14)
Excel solution 16 for Draw Inverted Triangle Shape, proposed by Charles Roldan:
=LAMBDA(
n,
IFNA(
REDUCE(
,
SEQUENCE(
n
),
LAMBDA(
a,
b,
VSTACK(
SEQUENCE(
,
b,
COMBIN(
b,
2
)
) + 1,
a
)
)
),
""
&
)
)(A14)
Excel solution 17 for Draw Inverted Triangle Shape, proposed by Pieter de Bruijn:
=LET(
r,
7,
MAKEARRAY(
r,
r,
LAMBDA(
x,
y,
IFERROR(
INDEX(
TAKE(
SEQUENCE(
SUM(
SEQUENCE(
r+1-x
)
)
),
-r-1+x
),
y,
1
),
""
)
)
)
)
or
=LET(
r,
7,
DROP(
REDUCE(
"",
SEQUENCE(
r
),
LAMBDA(
x,
y,
IFNA(
VSTACK(
x,
TAKE(
SEQUENCE(
,
SUM(
SEQUENCE(
r-y+1
)
)
),
,
-r+y-1
)
),
""
)
)
),
1
)
)
Excel solution 18 for Draw Inverted Triangle Shape, proposed by Ziad A.:
=MAKEARRAY(A2,
A2,
LAMBDA(i,
j,
IF(j-1>A2-i,
,
(A2-i)*(A2-i+1)/2+j)))
Excel solution 19 for Draw Inverted Triangle Shape, proposed by Giorgi Goderdzishvili:
=LET(
_r,
A14,
_mkr,
MAKEARRAY(_r,
_r,
LAMBDA(r,
c,
IF( (r+c-2)>=_r,
"",
IFERROR(
SUM(
SEQUENCE(
_r - r
)
)+1,
1
)+(c-1)))),
_mkr)
Excel solution 20 for Draw Inverted Triangle Shape, proposed by Diarmuid Early:
=IFNA(REDUCE(1,
DROP(
SEQUENCE(
A2
),
1
),
LAMBDA(a,
v,
VSTACK(SEQUENCE(,
v,
(v^2-v)/2+1),
a))),
"")
Excel solution 21 for Draw Inverted Triangle Shape, proposed by LUIS FLORENTINO COUTO CORTEGOSO:
=SORT(MAKEARRAY(A14,
A14,
LAMBDA(x,
y,
IF(x>=y,
(x^2-x)/2+y,
""))),
,
-1)
=LET(r,
A14,
MAKEARRAY(r,
r,
LAMBDA(x,
y,
IF(x
Excel solution 22 for Draw Inverted Triangle Shape, proposed by Md Ismail Hosen:
=LAMBDA(r,
DROP(REDUCE("",
SEQUENCE(
r
),
LAMBDA(a,
c,
VSTACK(a,
EXPAND(SEQUENCE(1,
r - c + 1,
(r - c) * (r - c + 1) * 0.5 + 1),
1,
r,
"")))),
1))(7)
Excel solution 23 for Draw Inverted Triangle Shape, proposed by Josh Brodrick:
=SORT(IF(SEQUENCE(L30)
Excel solution 24 for Draw Inverted Triangle Shape, proposed by Arden Nguyen, CPA:
=REDUCE(
1,
SEQUENCE(
A14-1,
,
2
),
LAMBDA(
a,
c,
IFNA(
VSTACK(
SEQUENCE(
,
c,
MAX(
a
)+1
),
a
),
""
)
)
)
or
=LET(
x,
7,
SORT(MAKEARRAY(x,
x,
LAMBDA(r,
c,
IF(r
Excel solution 25 for Draw Inverted Triangle Shape, proposed by Daniel Madhadha:
=LET(a,
SEQUENCE(
A14,
,
A14,
-1
),
b,
--(a<=TRANSPOSE(
a
)),
SORT(
IF(
b,
SCAN(
0,
b,
SUM
),
""
),
,
-1
))
Excel solution 26 for Draw Inverted Triangle Shape, proposed by Narayanan J 🇮🇳:
=LET(v,
A14,
MAKEARRAY(v,
v,
LAMBDA(r,
c,
IF(r+c-1>v,
"",
LET(i,
v-r+1,
n,
(i*(i+1)/2),
n-i+c)))))
2)
=LET(i,
A1,
MAKEARRAY(i,
i,
LAMBDA(rw,
c,
LET(r,
inp-rw+1,
IF(c>r,
"",
(r-1)*r/2+c)))))
Solving the challenge of Draw Inverted Triangle Shape with Python
Python solution 1 for Draw Inverted Triangle Shape, proposed by Jan Willem Van Holst:
In Python:
import numpy as np
def fx(number):
cumsumList = np.cumsum(list(range(number)))+1
inverseTriangleList = []
for i in range(number):
rest = list(range(first+1,first+i+1))
inverseTriangleList.append( [first] + rest )
return inverseTriangleList[::-1]
answer = [fx(x)for x in [2,3,4,7]]
Solving the challenge of Draw Inverted Triangle Shape with R
R solution 1 for Draw Inverted Triangle Shape, proposed by Konrad Gryczan, PhD:
library(tidyverse)
library(readxl)
test2 = read_excel("Excel/372 Draw Inverted Right Angled Triangle.xlsx", range = "B2:C3", col_names = FALSE) %>%
set_names(paste0("V", 1:ncol(.)))
test3 = read_excel("Excel/372 Draw Inverted Right Angled Triangle.xlsx", range = "B5:D7", col_names = FALSE) %>%
set_names(paste0("V", 1:ncol(.)))
test4 = read_excel("Excel/372 Draw Inverted Right Angled Triangle.xlsx", range = "B9:E12", col_names = FALSE) %>%
set_names(paste0("V", 1:ncol(.)))
test7 = read_excel("Excel/372 Draw Inverted Right Angled Triangle.xlsx", range = "B14:H20", col_names = FALSE) %>%
set_names(paste0("V", 1:ncol(.)))
draw_inverted_triangle <- function(size) {
numbers <- seq(size * (size + 1) / 2, 1)
mat <- matrix(NA, nrow = size, ncol = size)
mat[lower.tri(mat, diag = TRUE)] <- numbers
mat <- apply(mat, 2, rev) %>% t()
as_tibble(mat) %>%
print(n = Inf)
}
&&
