Training Log in Excel

Ray Flits 11 Reputation points
2021-01-11T21:25:30.17+00:00

Hey there,

I'm trying to set up a training log in excel, basically it will be a list of users, and the training they've taken.

There will be a scrollable list of users, when you click a user I want excel to display which training they've taken.

I've attached a crude screenshot which details what I'm trying to do, any help is appreciated!

55514-courses-test.png

Microsoft 365 and Office | Excel | For business | Windows
Developer technologies | Visual Basic for Applications
{count} vote

5 answers

Sort by: Most helpful
  1. Erin Ding-MSFT 4,481 Reputation points
    2021-01-12T08:40:21.45+00:00

    @Ray Flits

    Based on your description, it may require VBA code to realize.
    You could add a related tag like “office-vba-dev”, this may get more help.


    If an Answer is helpful, please click "Accept Answer" and upvote it.
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    1 person found this answer helpful.

  2. Lz._ 38,101 Reputation points
    2021-01-15T13:13:14.103+00:00

    2 options with Excel 365 & Training data formatted as a table named Training (not mandatory, will work the same with a range)

    57183-demo.png

    in E8:
    =IF(ISBLANK(B8), "",
    SUBSTITUTE(
    TEXTJOIN(", ",TRUE,IF(INDEX(Training,MATCH(B8,Training[NAMES],0),0)<>0,Training[#Headers],"")),
    "NAMES, ",""
    )
    )

    in E9:
    =IF(ISBLANK(B8), "",
    SUBSTITUTE(
    TEXTJOIN(", ",TRUE,IF(FILTER(Training,Training[NAMES]=B8)<>0,Training[#Headers],"")),
    "NAMES, ",""
    )
    )

    Corresponding workbook available here

    1 person found this answer helpful.
    0 comments No comments

  3. Ashish Mathur 99,580 Reputation points Volunteer Moderator
    2025-07-20T03:17:16.12+00:00

    Hi,

    Here are 2 ways

    In cell B9, enter this formula and drag down

    =ARRAYTOTEXT(FILTER($B$1:$J$1,BYCOL(($A$2:$A$5=A9)*($B$2:$J$5="x"),OR)))

    In cell G9, enter this formula

    =GROUPBY(A2:A5,BYROW(B2:J5,LAMBDA(a,ARRAYTOTEXT(FILTER($B$1:$J$1,BYCOL(a="x",OR))))),ARRAYTOTEXT,,0)

    Hope this helps.

    User's image

    0 comments No comments

  4. IlirU 406 Reputation points Volunteer Moderator
    2025-07-20T09:37:24.8633333+00:00

    User's image

    In cell D12 apply this formula:

    =ARRAYTOTEXT(FILTER($F$1:$M$1, BYCOL(--FILTER(IF(ISBLANK($F$2:$M$5), FALSE, TRUE), $E$2:$E$5 = $C12), SUM)))

    The formula also works in cases where, in addition to text, numbers are entered in cells F2:M5.

    Hope this helps.

    0 comments No comments

  5. ScottGem 68,755 Reputation points Volunteer Moderator
    2025-07-20T12:01:34.4266667+00:00

    This would be better and more easily done in Access. Excel is not a database.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.