Skip to main content
ExcelVLOOKUP Return Left ColumnLookup & ReferenceData ManagementFormula Tips

The Problem

Have you ever found yourself staring at an Excel spreadsheet, needing to pull information from a column to the left of your unique identifier? It’s a common scenario, and if you’ve tried using the classic =VLOOKUP() function, you've likely hit a wall. Traditional VLOOKUP is designed to look up a value in the first column of a specified table array and then retrieve a corresponding value from any column to its right. This "right-only" limitation is a frequent source of frustration for many Excel users.

What is VLOOKUP? VLOOKUP is an Excel function that searches for a value in the first column of a table or range and returns a value in the same row from a column you specify. It is commonly used to cross-reference data, retrieve associated information, and automate data consolidation tasks across different datasets. When your lookup value is in column D, but the data you need is in column B, the standard VLOOKUP seems entirely unhelpful. This often leads to manual data rearrangement or complex, error-prone workarounds, wasting precious time.

Business Context & Real-World Use Case

Imagine you work in Human Resources for a large organization. You have a master employee list where the Employee ID (EmpID) is in column C, the Employee Name is in column B (to the left of EmpID), and their Department is in column D. You've just received a separate report listing various training courses, and this report only contains EmpIDs. Your task is to quickly populate the Employee Name next to each EmpID in the training report. Doing this manually for hundreds or thousands of employees would be a colossal waste of time and introduce numerous transcription errors.

In my years as a data analyst, I've seen teams dedicate entire afternoons to manually cross-referencing employee data, product codes, or financial transactions simply because the unique identifier was not in the leftmost column of their source data. Beyond the time sink, manual processes are breeding grounds for human error. A single misplaced employee name could lead to incorrect training records, payroll discrepancies, or even compliance issues. Automating this with a robust formula ensures accuracy, saves countless hours, and allows HR professionals to focus on strategic tasks rather than data entry. This is precisely where understanding how to make VLOOKUP return left column data becomes an invaluable skill, transforming tedious manual work into an instant, reliable solution.

The Ingredients: Understanding VLOOKUP Return Left Column's Setup

To overcome VLOOKUP's inherent "right-only" nature and effectively retrieve data from a column to its left, we need to get clever with its table_array argument. The core idea is to virtually rearrange our data so that the lookup column appears as the first column of a temporary array, and the desired "left-column" data appears to its right, all within the VLOOKUP function itself. We achieve this by nesting the CHOOSE function within the table_array argument.

The exact syntax for VLOOKUP remains:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Let's break down each parameter for our "return left column" scenario:

| Variables | Description to me, where every cell is a canvas, and every formula an opportunity to craft something amazing. Today, we're tackling a unique request from our culinary community: how to get VLOOKUP to return a value from a "left" column.

The Recipe: Step-by-Step Instructions

Let's use our HR scenario. We have a list of employees where their Employee ID is in column C and their Employee Name is in column B. We want to look up an EmpID and retrieve the corresponding Employee Name.

Sample Data (Sheet1):

EmpID (Col C) Employee Name (Col B) Department (Col D)
101 Alice Sales
102 Bob Marketing
103 Charlie HR
104 Diana Finance

Lookup Table (Sheet2):

EmpID to Find (Col G) Employee Name (Col H)
102
104
101

Here's how we'll construct our VLOOKUP formula to pull Employee Name (from column B on Sheet1) using EmpID (from column C on Sheet1).

  1. Select Your Cell: Go to Sheet2 and click on cell H2, where you want the first Employee Name to appear. This is where we'll enter our formula.

  2. Enter the Formula Start: Begin by typing the standard VLOOKUP function:
    =VLOOKUP(

  3. Specify Your lookup_value: Your lookup_value is the EmpID you're trying to find. In Sheet2, this is in cell G2.
    =VLOOKUP(G2,

  4. Construct Your Virtual table_array with CHOOSE: This is the magic ingredient! We need to create a temporary table array where our lookup_value (EmpID in C:C) is the first column, and our desired return value (Employee Name in B:B) is the second. We use CHOOSE for this.
    CHOOSE({1,2}, Sheet1!C:C, Sheet1!B:B)

    • {1,2} creates an array constant indicating we want to select columns in a specific order.
    • Sheet1!C:C refers to the EmpID column, which VLOOKUP will search first.
    • Sheet1!B:B refers to the Employee Name column, which will be the second column in our virtual table.

    So, our formula now looks like:
    =VLOOKUP(G2, CHOOSE({1,2}, Sheet1!C:C, Sheet1!B:B),

  5. Determine Your col_index_num: Now that Sheet1!C:C is the first column and Sheet1!B:B is the second column in our virtually constructed table, we want to return the Employee Name, which is the second column. So, our col_index_num is 2.
    =VLOOKUP(G2, CHOOSE({1,2}, Sheet1!C:C, Sheet1!B:B), 2,

  6. Set Your range_lookup: For an exact match (which you almost always want when looking up unique IDs), use FALSE or 0.
    =VLOOKUP(G2, CHOOSE({1,2}, Sheet1!C:C, Sheet1!B:B), 2, FALSE)

  7. Complete the Formula: Press Enter. Excel will display "Bob" in cell H2. Drag the fill handle down to apply the formula to the rest of the cells in column H.

The final formula uses CHOOSE to present VLOOKUP with a table where the lookup column (Sheet1!C:C) is on the left, and the return column (Sheet1!B:B), originally to its left, is now effectively to its right. This allows VLOOKUP to perform its lookup as designed, fulfilling the "return left column" requirement without needing to physically rearrange your data.

Pro Tips: Level Up Your Skills

When you're trying to make VLOOKUP return left column data, a few expert insights can significantly enhance your efficiency and formula robustness.

  • Use caution when scaling arrays over massive rows. While CHOOSE with whole column references (e.g., C:C, B:B) is convenient, it can impact performance on extremely large datasets. For optimal speed, consider defining specific ranges (e.g., Sheet1!C2:C1000, Sheet1!B2:B1000) instead of entire columns if your data isn't dynamic or exceeds hundreds of thousands of rows.
  • Absolute References are Your Friend: When dragging your formula, ensure your lookup table ranges within the CHOOSE function are absolute (e.g., Sheet1!$C:$C, Sheet1!$B:$B) to prevent them from shifting. Your lookup_value (e.g., G2) should typically be a relative reference so it adjusts for each row.
  • Understand CHOOSE's Power: The {1,2} array constant is crucial. {1,2,3} would create a three-column virtual array. You can use this for more complex lookups, but always ensure your col_index_num correctly points to the desired column within this newly created virtual array.
  • Consider Alternatives (for context): While this recipe focuses on VLOOKUP Return Left Column as requested, experienced Excel users often prefer INDEX MATCH for its flexibility as it inherently handles left or right lookups without the CHOOSE workaround. However, for a pure VLOOKUP solution, the CHOOSE method is elegant and effective.

Troubleshooting: Common Errors & Fixes

Even the best recipes can encounter a few kitchen mishaps. When attempting to make VLOOKUP return left column values, you might run into some familiar Excel errors. Knowing how to diagnose and fix them will save you a lot of headache.

1. #N/A Error

  • Symptom: The cell displays #N/A. This is the most common error for any lookup function.
  • Cause:
    • The lookup_value (e.g., EmpID in G2) could not be found in the first column of your virtual table_array (Sheet1!C:C). This might be due to a typo, an extra space, or the value simply doesn't exist.
    • The data types might not match. For instance, one might be text ("102") and the other a number (102).
  • Step-by-Step Fix:
    1. Verify Lookup Value: Double-check the spelling or number in your lookup_value cell (G2 in our example) against the source data (Sheet1!C:C).
    2. Trim Spaces: Often, unseen leading or trailing spaces cause mismatches. Use the TRIM function on both your lookup_value and your source data columns (e.g., =VLOOKUP(TRIM(G2), CHOOSE({1,2}, TRIM(Sheet1!C:C), Sheet1!B:B), 2, FALSE)). You might need to apply TRIM to the entire column first.
    3. Check Data Types: Select the cells in your lookup column (Sheet1!C:C) and the lookup_value (G2). Go to "Home" tab > "Number" group and ensure they are both formatted as "General" or "Number" for consistency. Convert text numbers to actual numbers if needed (e.g., using "Text to Columns" or multiplying by 1).

2. #VALUE! Error

  • Symptom: The cell displays #VALUE!. This error often indicates a problem with how the arguments are being processed.
  • Cause:
    • The most frequent cause in this specific setup is an incorrect col_index_num. If your CHOOSE function creates a two-column array, and you specify col_index_num as 3 or higher, Excel cannot find that column.
    • The CHOOSE function itself might have an error if the array constant {1,2} is malformed, or if the ranges provided to CHOOSE (e.g., Sheet1!C:C, Sheet1!B:B) are not valid column references or contain errors.
  • Step-by-Step Fix:
    1. Inspect col_index_num: Carefully count the columns within your CHOOSE function's virtual array. If CHOOSE({1,2}, ColA, ColB) is used, then ColA is 1 and ColB is 2. Ensure your col_index_num accurately reflects the position of the desired return column within that virtual array.
    2. Validate CHOOSE Arguments: Ensure that the ranges provided to CHOOSE are actual valid ranges or whole column references. If you are using named ranges, confirm they are correctly defined.

3. #REF! Error

  • Symptom: The cell displays #REF!. This error indicates an invalid cell reference.
  • Cause: One of the cell references used in your VLOOKUP formula or within the CHOOSE function has become invalid. This commonly happens if columns were deleted or moved in the source sheet (Sheet1) after you created the formula. For example, if you referred to Sheet1!B:B and then deleted column B, the reference becomes invalid.
  • Step-by-Step Fix:
    1. Check Source Sheet Integrity: Go to Sheet1 and verify that columns B and C (or whatever columns you referenced in CHOOSE) still exist and contain the expected data.
    2. Review Formula References: Click on the cell with the #REF! error and examine the formula in the formula bar. Excel will highlight the broken reference. Correct the formula to point to the correct, existing columns.
    3. Use Table References: To prevent #REF! errors when columns are added or deleted, consider converting your data to an Excel Table (Insert > Table). Then, reference table columns by name (e.g., Table1[EmpID]) instead of absolute column letters. This makes formulas more resilient to structural changes.

Quick Reference

Here's a concise overview of our "VLOOKUP Return Left Column" technique:

  • Syntax: =VLOOKUP(lookup_value, CHOOSE({1,2}, lookup_column_range, return_column_range), col_index_num_in_CHOOSE_array, FALSE)
  • Most Common Use Case: Retrieving associated data (e.g., Employee Name) that is positioned to the left of your unique identifier (e.g., Employee ID) in a dataset without physically rearranging the source data. This method is essential for situations where VLOOKUP's standard right-only search limitations would otherwise prevent data retrieval.

Related Functions

👨‍💻

Written by The Head Chef

Former 10-year Financial Analyst who survived countless month-end closes. I build these recipes to save you from weekend-ruining spreadsheet errors.

Read the full story →

You might also find these useful 💡