Adding Matching Data from multiple rows

1 view (last 30 days)
I have a 10x2 table of data and I want to add all the matching names in col 1 data in col 2
A = 10×2 table
Name Num
___________________ ___
Business Name One 6
Business Name Two 3
Business Name Three 1
Business Name One 5
Business Name Two 22
Business Name Three 2
Business Name One 6
Business Name Two 3
Business Name Three 32
Bussiness Name Three 4
I would like the output to be
Name Num
___________________ ___
Business Name One 17
Business Name Two 28
Business Name Three 39
But I cannot figure out a way to match all the unique names and then add the second column after. I have tried a few different ways without success.
Any help would be appreciated!

Accepted Answer

Stephen23
Stephen23 on 18 Mar 2022
Edited: Stephen23 on 18 Mar 2022
Name = ["One";"Two";"Three";"One";"Two";"Three";"One";"Two";"Three";"Three"];
Num = [6;3;1;5;22;2;6;3;32;4];
inp = table(Name,Num)
inp = 10×2 table
Name Num _______ ___ "One" 6 "Two" 3 "Three" 1 "One" 5 "Two" 22 "Three" 2 "One" 6 "Two" 3 "Three" 32 "Three" 4
[G,Name] = findgroups(inp.Name);
Num = splitapply(@sum,inp.Num,G);
out = table(Name,Num)
out = 3×2 table
Name Num _______ ___ "One" 17 "Three" 39 "Two" 28
This is one of the approaches shown here:
  1 Comment
Maddie Long
Maddie Long on 18 Mar 2022
Thank you so much, I knew it was something simple! You rock

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!