Sample Employee Data

An HR roster with department, job title, hire date, salary and city — for lookups, headcount reporting and date maths.

What is in the file

8 columns, 150 data rows by default, plus a header row. These are the first ten rows of the default file.

Employee IDFirst NameLast NameDepartmentJob TitleCityHire DateAnnual Salary
EMP-1000SofiaBennettMarketingCoordinatorMalmö2022-09-03145015
EMP-1001FelixDuboisFinanceManagerBerlin2023-12-0354609
EMP-1002EmmaKowalskiMarketingCoordinatorAustin2025-03-0297827
EMP-1003AdamDuboisSupportManagerBerlin2020-05-22121421
EMP-1004LiamBennettMarketingAnalystAustin2021-08-2150639
EMP-1005OliverAndersenSupportSpecialistKraków2022-11-1974233
EMP-1006MiaBennettOperationsAnalystBologna2024-02-18117451
EMP-1007JonasAndersenSalesSpecialistToronto2025-05-18141045
EMP-1008NoraNovakOperationsEngineerRotterdam2024-09-30105767
EMP-1009EthanSilvaSalesDirectorLyon2025-12-30129361

Download 150 rows

8 columns · header included · no signup

Direct files work without JavaScript. Choose another size below.

Choose another size
Rows

Built in your browser when you click. Nothing is uploaded, no signup, free for commercial use.

About this dataset

A people table is where most lookup practice actually happens: you have an employee ID on one sheet and need the department, the salary band or the hire date on another. Hire dates spread across several years, so DATEDIF, YEARFRAC and tenure banding all produce meaningful answers rather than a column of zeros.

The Excel download stores date columns as numeric Excel dates with a date format. CSV and JSON contain ISO date text; convert those fields to dates during import before using date arithmetic or grouping by month.

Look up six employee requests and check every answer

Open the unchanged default 150-row roster with headers in A1:H151. Employee ID is in A, Department in D and Annual Salary in H. Paste the request block into a blank area starting at K1 on the same sheet. Leave L2:M7 empty until you enter your formulas; keep A:H unchanged.

Paste sample data starting at K1

Task 1: return Department in L2

=XLOOKUP(K2,$A$2:$A$151,$D$2:$D$151,"Not found",0)

Task 2: return Annual Salary in M2

=XLOOKUP(K2,$A$2:$A$151,$H$2:$H$151,"Not found",0)

Task 3: exact VLOOKUP alternative for L2

=VLOOKUP(K2,$A$2:$H$151,4,FALSE)

Task 3: exact VLOOKUP alternative for M2

=VLOOKUP(K2,$A$2:$H$151,8,FALSE)
Expected XLOOKUP results for all six requests
Request rowK: Employee IDL: DepartmentM: Annual Salary
2EMP-1149Marketing65493
3EMP-1000Marketing145015
4EMP-1074Finance62042
5EMP-1000Marketing145015
6EMP-9999Not foundNot found
7EMP-1049Support36408

If columns are cut off, scroll the table sideways.

Task 4: reconcile requests without removing repeated IDs
CheckExpected
Request rows in K2:K76
Matched requests5
Unique matched employee IDs4
Missing requests1

If columns are cut off, scroll the table sideways.

  • Task 1: enter the Department formula in L2. K2 is the request key; keep the source and return ranges locked with dollar signs.
  • Task 2: enter the Salary formula in M2, then fill L2:M2 down to L7:M7. Compare all six rows in their original order. Both EMP-1000 requests must remain and return Marketing and 145015.
  • Task 3: save your XLOOKUP answers, then use the two exact VLOOKUP alternatives in L2 and M2 and fill to row 7. Employee ID is the first A:H column; Department and Annual Salary are columns 4 and 8. The five matched requests give the same values. For EMP-9999, both VLOOKUP formulas return the #N/A error rather than the text Not found.
  • Task 4: explain the missing and repeated requests. EMP-9999 has no record, so do not invent a department or replace its missing salary with zero. Repeating a request is different from a duplicate source ID; keep both EMP-1000 rows.
  • These answers match only the unchanged default 150-row roster and the six requests shown. Another row count, data edit or request needs adjusted ranges and new answers.
  • XLOOKUP is available in Microsoft 365, Excel 2021 and Excel 2024 for Windows and Mac; Microsoft explicitly excludes Excel 2016 and Excel 2019. Use the exact VLOOKUP alternative on those older releases. English function names and comma separators are shown; localized Excel may need different names or separators.
  • The records and salary values are synthetic and have no assigned currency. Keep matched Salary values numeric. When importing CSV or JSON, keep Employee ID as text and Annual Salary as a number; the on-page reference is not a new answer workbook or an automatic score.

Documentation reviewed .

Microsoft: XLOOKUPMicrosoft: VLOOKUP

What you can practise with it

  • Return a salary for an employee ID with XLOOKUP
  • Calculate tenure in years with DATEDIF or YEARFRAC
  • Average salary per department with AVERAGEIFS
  • Compare missing and repeated employee-ID lookup requests

Try a related exercise

Tools that work on this data

Use this on your own site

Free to use, share and republish — including commercially. Attribution isn't required, but it's what keeps these free to make, and there's one ready to paste below.

Cite it

Questions

Is this sample employee data free to use?

Yes — for practice, teaching, demos and commercial work alike. The rows are generated, so there is no personal data in the file. Attribution is not required; if you would like to credit it, there is a ready-made line at the bottom of this page.

Do I have to sign up or give an email address?

No. Direct links download the default-size files without JavaScript. The row-count control builds other supported sizes in your browser. Your spreadsheet contents are not uploaded and no account is involved.

Which formats can I download?

The original dataset is available as Excel (.xlsx), CSV and JSON. All three contain the same source rows, so you can use the CSV for an import exercise and the .xlsx for a formula exercise.

Can I choose how many rows I get?

Yes. The browser control offers 25, 100, 150, 500 data rows, plus a header. Direct source links contain 150 data rows; the preview shows the first ten of those rows.