1. Introduction to UDFs and VLOOKUP
2. Understanding the Limitations of Standard VLOOKUP
3. The Basics of Creating Your First UDF in Excel
4. Designing UDFs for Advanced VLOOKUP Operations
5. Step-by-Step Guide to Implementing UDFs in Excel
6. Debugging and Optimizing Your UDFs
user-Defined functions (UDFs) are a powerful feature in Excel that allow users to create custom functions tailored to their specific needs. These functions can perform calculations, manipulate text, or even interact with other applications. UDFs are particularly useful when built-in functions like VLOOKUP fall short. VLOOKUP is a widely used function that searches for a value in the first column of a table and returns a value in the same row from a specified column. However, VLOOKUP has its limitations, such as only being able to search from left to right and not handling multiple criteria well. This is where UDFs come into play, extending the capabilities of VLOOKUP by overcoming these limitations and providing more flexibility.
From a practical standpoint, UDFs can save time and reduce errors in complex spreadsheets. For instance, a UDF can be created to perform a two-way lookup, which is something VLOOKUP cannot do on its own. From a developer's perspective, UDFs offer a way to encapsulate frequently used formulas into a single function, making the code cleaner and easier to maintain.
Here are some in-depth insights into UDFs and VLOOKUP:
1. Creating UDFs: UDFs are created using visual Basic for applications (VBA), Excel's programming language. To create a UDF, you open the VBA editor, insert a new module, and write a function in VBA code. For example, a simple UDF to add two numbers would look like this:
```vba
Function AddNumbers(number1 As Double, number2 As Double) As Double
AddNumbers = number1 + number2
End Function
```This UDF can then be used in Excel like any other function: `=AddNumbers(A1, B1)`.
2. Enhancing VLOOKUP with UDFs: A common enhancement is to create a UDF that allows VLOOKUP to search for multiple criteria. For example:
```vba
Function VLookupMultipleCriteria(lookupValue1 As Variant, lookupValue2 As Variant, tableArray As Range, colIndexNum As Integer) As Variant
Dim rng As Range
For Each rng In tableArray.Columns(1).Cells
If rng.Value = lookupValue1 And rng.Offset(0, 1).Value = lookupValue2 Then
VLookupMultipleCriteria = rng.Offset(0, colIndexNum - 1).Value
Exit Function
End If
Next rng
VLookupMultipleCriteria = "Not Found"
End Function
```This UDF can be used to find a value based on two criteria: `=VLookupMultipleCriteria("Apple", "Red", A1:C10, 3)`.
3. Error Handling in UDFs: It's important to include error handling in UDFs to ensure they don't cause the spreadsheet to crash. This can be done using the `On error` statement in vba.
4. Performance Considerations: While UDFs are powerful, they can slow down the performance of a spreadsheet if not used carefully. It's best to use them sparingly and optimize the VBA code for efficiency.
5. Sharing UDFs: UDFs are stored in the workbook where they are created, but they can be shared by distributing the workbook or by creating an Excel add-in.
By combining the strengths of UDFs with VLOOKUP, users can significantly enhance their data analysis capabilities in Excel. The ability to customize functions to meet specific requirements can lead to more efficient and accurate spreadsheets, ultimately empowering users to handle data more effectively. Whether you're a casual user looking to streamline a few tasks or a power user developing complex financial models, understanding and utilizing UDFs can be a game-changer in your excel experience.
Introduction to UDFs and VLOOKUP - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
VLOOKUP is a powerful tool in Excel that allows users to search for a value in the first column of a table and return a value in the same row from a specified column. However, it has its limitations which can sometimes hinder its effectiveness in more complex data analysis tasks. One of the primary limitations is that VLOOKUP can only search for values in the first column of the table array and return a value to the right; it cannot look to the left. This means that if the data is not organized with the lookup value in the first column, VLOOKUP will not work unless the table is restructured. Additionally, VLOOKUP is not dynamic; if columns are added or deleted in the table array, the column index number may need to be updated manually, which can be error-prone and time-consuming.
Here are some in-depth insights into the limitations of standard VLOOKUP:
1. Exact Match Requirement: VLOOKUP requires an exact match to return the correct value. If there's even a slight discrepancy in the data, such as an extra space or different case, VLOOKUP may fail to find the match.
2. Approximate Match Risks: When set to approximate match (the default setting), VLOOKUP might return incorrect data if the table is not sorted correctly, leading to potentially misleading results.
3. Single Column Lookup: VLOOKUP can only look up data based on one criterion. If you need to match multiple criteria, you'll need to create a helper column or use a different function like INDEX and MATCH.
4. Performance Issues: In large datasets, VLOOKUP can slow down the performance of your spreadsheet because it searches for the lookup value sequentially from the top of the column.
5. No Left Lookup: As mentioned, VLOOKUP cannot return values from columns to the left of the lookup column. This limitation often requires rearranging data, which is not always practical.
6. Error Handling: VLOOKUP does not have built-in error handling. If it does not find a match, it will return an error, which can disrupt further calculations in your spreadsheet.
7. Absolute References: When copying the VLOOKUP formula across cells, absolute references can cause issues if not adjusted properly, leading to incorrect results or errors.
For example, consider a dataset where you have product names in column B and their prices in column A. If you want to find the price of a specific product using VLOOKUP, you would not be able to do so directly since VLOOKUP cannot search in column B and return a value from column A.
To overcome these limitations, User-Defined Functions (UDFs) can be created in VBA to extend the capabilities of VLOOKUP. UDFs can be designed to handle multiple criteria, perform left lookups, and include error handling to make data retrieval more robust and flexible. By creating custom solutions with UDFs, users can tailor the functionality of Excel to meet their specific data analysis needs, making VLOOKUP an even more powerful tool in their arsenal.
Understanding the Limitations of Standard VLOOKUP - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
User-Defined Functions (UDFs) in Excel are a powerful way to extend the capabilities of Excel's built-in functions. They allow users to create custom functions tailored to their specific needs, which can be particularly useful when dealing with complex data analysis or repetitive tasks. UDFs can be written in VBA (Visual Basic for Applications), Excel's programming language, and once created, they can be used just like any other Excel function. This means they can be a game-changer for users who frequently use VLOOKUP but find its limitations restrictive. For instance, VLOOKUP can only search for values in the first column of a table, and it doesn't handle multiple criteria well. With UDFs, you can overcome these limitations by writing functions that can search based on multiple criteria and return values from any column.
Here's an in-depth look at creating your first UDF in Excel:
1. Open the Visual Basic for Applications Editor: You can do this by pressing `Alt + F11` on your keyboard when Excel is open.
2. Insert a New Module: In the VBA editor, right-click on any existing project in the 'Project' window, select 'Insert', and then 'Module'. This will create a new module where you can write your code.
3. Define Your Function: Start by typing `Function`, followed by the name of your function. For example, `Function MyCustomLookup()`.
4. Write the Code for Your Function: This is where you'll define what your function does. For example, if you want to create a UDF that extends VLOOKUP to search for a value based on two criteria, you would write the logic here.
5. End Your Function: Conclude your function with `End Function`. This tells Excel that you've finished writing your function.
Let's consider an example. Suppose you want to create a UDF that looks up a value based on two criteria: 'Product ID' and 'Region'. Here's a simple version of how that function might look:
```vba
Function DoubleCriteriaLookup(ProductID As String, Region As String, DataRange As Range) As Variant
Dim cell As Range
For Each cell In DataRange.Columns(1).Cells
If cell.Value = ProductID And cell.Offset(0, 1).Value = Region Then
DoubleCriteriaLookup = cell.Offset(0, 2).Value
Exit Function
End If
Next cell
DoubleCriteriaLookup = "Not Found"
End Function
In this function, `DataRange` is the range of cells where your data is stored, with the assumption that the first column contains the 'Product ID', the second column contains the 'Region', and the third column contains the value you want to return.
6. Save Your Work: After writing your function, save your work in the VBA editor and close it to return to Excel.
7. Use Your UDF: Back in Excel, you can now use your new function just like any other function. For example, `=DoubleCriteriaLookup(A2, B2, C2:E100)`.
Creating UDFs can significantly enhance your productivity in Excel, especially when dealing with complex datasets. It allows for a level of customization that goes beyond the standard functions, giving you the flexibility to tackle unique data challenges. Remember, while VLOOKUP is a powerful tool, it has its limitations, and UDFs are a great way to bridge that gap.
The Basics of Creating Your First UDF in Excel - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
User-Defined Functions (UDFs) are a powerful feature in Excel that allow users to go beyond the built-in capabilities of the application. When it comes to looking up and retrieving data across tables, VLOOKUP is a go-to function for many. However, VLOOKUP has its limitations, such as only being able to search for values in the first column of a table. By designing UDFs for advanced VLOOKUP operations, users can overcome these limitations and tailor the lookup process to their specific needs. This can involve creating functions that search through multiple columns, return multiple matches, or even perform two-way lookups. The flexibility of UDFs opens up a new realm of possibilities for data analysis and manipulation in Excel.
From the perspective of a data analyst, the ability to quickly retrieve and cross-reference data is crucial. UDFs can be designed to enhance VLOOKUP by:
1. Allowing for two-way lookups: Traditional VLOOKUP is limited to vertical searches. A UDF can be created to perform a horizontal lookup (HLOOKUP) and combine it with VLOOKUP for a two-dimensional search.
2. Searching across multiple sheets: Often, data is spread across multiple sheets. A UDF can extend VLOOKUP to search across these sheets without the need for complex formulas or manual intervention.
3. Returning multiple values: Sometimes, a lookup needs to return more than one value. A UDF can be designed to return an array of values that meet the lookup criteria.
4. Case-insensitive searching: VLOOKUP is case-sensitive. A UDF can be tailored to perform case-insensitive searches, making it more flexible.
5. Error handling: VLOOKUP errors can be cryptic. A UDF can include more intuitive error handling to inform the user about the nature of the problem.
For example, consider a scenario where you need to find all orders from a specific customer in a sales database. The database is structured in such a way that the customer names are not always in the first column, and there are multiple entries for each customer. A UDF can be written to search for the customer name across all columns and return a list of all matching orders. The UDF could look something like this in VBA:
```vba
Function AdvancedVLookup(customerName As String, dataRange As Range) As Variant
Dim result As Collection
Set result = New Collection
Dim cell As Range
Dim i As Integer
For Each cell In dataRange.Rows
For i = 1 To cell.Columns.Count
If cell.Cells(1, i).Value = customerName Then
Result.Add cell.Value
Exit For
End If
Next i
Next cell
AdvancedVLookup = result
End Function
This UDF, `AdvancedVLookup`, would iterate through each row in the specified data range, checking each cell in the row for the customer name. When a match is found, it adds the entire row to the results collection. This allows for a more dynamic and comprehensive search than what's possible with standard VLOOKUP.
By leveraging the power of UDFs, Excel users can significantly enhance the functionality of VLOOKUP, making it a more versatile tool for data analysis. Whether it's through custom error messages, multi-sheet searches, or case-insensitive lookups, the potential for customization is vast, providing users with the exact functionality they need for their unique data challenges.
Designing UDFs for Advanced VLOOKUP Operations - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
User-Defined Functions (UDFs) in Excel are a powerful way to extend the capabilities of Excel's built-in functions. They allow users to create custom functions tailored to their specific needs, which can be particularly useful when dealing with complex data analysis tasks that go beyond the scope of standard functions like VLOOKUP. Implementing UDFs can streamline workflows, enhance productivity, and provide more accurate results. From the perspective of a data analyst, UDFs can be a game-changer, enabling the creation of bespoke formulas that can be reused across multiple spreadsheets. For a software developer, UDFs represent an opportunity to integrate Excel with other applications or databases, thereby expanding its functionality. Meanwhile, for the everyday Excel user, UDFs can simplify complex calculations without the need to become an expert in Excel formulas.
Here's a step-by-step guide to implementing UDFs in Excel:
1. Open the Visual Basic for Applications (VBA) Editor: You can access the VBA Editor by pressing `Alt + F11` on your keyboard. This is where you will write the code for your UDF.
2. Insert a New Module: In the VBA Editor, right-click on any of the items listed under 'VBAProject' (which corresponds to your workbook), select 'Insert', and then choose 'Module'. This will create a new module where you can define your UDF.
3. Define Your Function: Start by typing `Function`, followed by the name of your UDF. For example:
```vba
Function MyCustomVLookup(lookupValue As Variant, tableArray As Range, colIndex As Integer) As Variant
```This defines a UDF named `MyCustomVLookup`.
4. Write the Code for Your Function: Inside the function, write the VBA code that performs the desired operation. For instance, if you want to extend VLOOKUP to handle approximate matches differently, you might include logic to handle edge cases that VLOOKUP doesn't address.
5. End Your Function: Conclude your function with the `End Function` statement. This tells Excel that you've finished defining the function.
6. Use Your UDF in Excel: Once you've written and saved your UDF, you can use it in Excel just like any other function. Simply type `=MyCustomVLookup()` into a cell and fill in the arguments.
For example, suppose you have a dataset where you need to look up prices based on product codes, but the standard VLOOKUP function isn't giving you the flexibility you need. You could write a UDF like this:
```vba
Function MyCustomVLookup(lookupValue As Variant, tableArray As Range, colIndex As Integer) As Variant
Dim rng As Range
For Each rng In tableArray.Columns(1).Cells
If rng.Value = lookupValue Then
MyCustomVLookup = rng.Offset(0, colIndex - 1).Value
Exit Function
End If
Next rng
MyCustomVLookup = "Not Found"
End Function
This UDF searches for the `lookupValue` in the first column of `tableArray` and returns the value in the specified `colIndex`. If the `lookupValue` is not found, it returns "Not Found".
By following these steps, you can create UDFs that are tailored to your specific requirements, making your Excel experience more efficient and customized. Remember, while UDFs are powerful, they should be used judiciously to ensure that your spreadsheets remain manageable and performant.
Step by Step Guide to Implementing UDFs in Excel - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
Debugging and optimizing User-Defined Functions (UDFs) is a critical step in ensuring that your custom solutions not only work correctly but also perform efficiently. When extending the capabilities of functions like VLOOKUP, it's essential to ensure that your UDFs are robust and streamlined. This involves a meticulous process of identifying bottlenecks, understanding the execution flow, and refining the code for optimal performance. From the perspective of a developer, the focus is on clean, maintainable code that adheres to best practices. Meanwhile, from an end-user's standpoint, the emphasis is on speed and reliability. Balancing these considerations requires a thoughtful approach to both debugging and optimization.
Here are some in-depth insights into the process:
1. Benchmarking Performance: Before diving into optimization, establish a baseline by benchmarking the current performance of your UDF. Use Excel's built-in timing functions or a simple VBA timer to measure how long your function takes to execute under typical conditions.
2. Profiling Code: Utilize a profiler or manual logging to identify which parts of your UDF are consuming the most time or resources. This will help you pinpoint where optimizations can have the most significant impact.
3. Optimizing Loops: Loops can be a major source of inefficiency in UDFs. Consider using array operations or built-in Excel functions to replace slow, iterative loops.
4. Reducing Volatility: Excel recalculates volatile functions every time a change is made. If your UDF doesn't need to update with every change, make sure it's not marked as volatile.
5. Leveraging Excel's Calculation Engine: Whenever possible, use Excel's native functions within your UDFs to take advantage of the application's optimized calculation engine.
6. Minimizing Interactions with the Worksheet: Each read or write operation to a worksheet is costly. Minimize these interactions by reading or writing in bulk rather than cell by cell.
7. Using Efficient Data Structures: The choice of data structure can greatly affect performance. Arrays are generally faster than collections or dictionaries when dealing with large datasets.
8. Error Handling: Implement comprehensive error handling to avoid runtime errors that can cause Excel to crash or your UDF to return incorrect results.
For example, consider a UDF designed to find the next highest value in a range that extends VLOOKUP's functionality. Instead of using a loop to check each cell, you could sort the range and use a binary search algorithm, which is much faster. Here's a simplified version of what that might look like in VBA:
```vba
Function NextHighest(range As Range, value As Double) As Double
Dim arr() As Variant
Arr = range.Value
' Sort the array (omitted for brevity)
' Binary search algorithm (omitted for brevity)
' Return the next highest value
End Function
By following these steps and continually testing and refining your UDFs, you can ensure they are not only functional but also a pleasure to use due to their enhanced performance. Remember, the goal is to create UDFs that seamlessly extend Excel's capabilities without compromising on speed or user experience.
Debugging and Optimizing Your UDFs - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
In the dynamic world of data management and analysis, User-Defined Functions (UDFs) stand out as a beacon of customization, allowing users to go beyond the standard capabilities of built-in functions like VLOOKUP. UDFs are particularly valuable when dealing with complex data structures or when performing repetitive, specialized calculations that are not natively supported by the software. By harnessing the power of UDFs, users can create tailored solutions that fit their unique data processing needs, leading to more efficient and accurate results. This versatility is what makes UDFs an indispensable tool for data analysts, financial modelers, and anyone who regularly works with large datasets.
Let's delve into some real-world examples where UDFs have been instrumental:
1. Complex Data Lookup: Imagine a scenario where a financial analyst needs to extract specific information from a vast database. The standard VLOOKUP function falls short when the lookup value is not in the first column or when the data is spread across multiple sheets. A UDF can be crafted to search through multiple columns and sheets, returning the desired data without restructuring the entire dataset.
2. Custom Calculations: In another instance, a marketing team might need to calculate the return on investment (ROI) for various campaigns, where each campaign has its own set of variables and formulas. A UDF can encapsulate these unique formulas, allowing the team to simply input the campaign data and receive the ROI without manually performing the calculations each time.
3. Data Validation: data integrity is crucial for accurate analysis. UDFs can be created to validate data entries against a set of rules or patterns, ensuring that the data conforms to required standards before it's processed further. For example, a UDF could verify that entered email addresses are in a correct format or that dates fall within a specified range.
4. Automation of Repetitive Tasks: Often, data analysts spend a significant amount of time performing repetitive tasks such as data cleansing or formatting. UDFs can automate these processes, saving time and reducing the likelihood of human error. For instance, a UDF could be designed to automatically format phone numbers or addresses according to a standardized template.
5. Integration with External Data Sources: With the increasing importance of real-time data, UDFs can be programmed to fetch and integrate data from external sources such as APIs or web services. This capability is particularly useful for businesses that rely on up-to-the-minute data for decision-making.
To illustrate, consider a UDF that pulls the latest currency exchange rates from a financial web service. This function could be used in a spreadsheet to convert prices in a multi-national sales report, ensuring that the figures are always current and accurate.
UDFs are a powerful extension of the traditional spreadsheet functions, offering a level of flexibility and precision that is essential in today's data-driven environment. By understanding and utilizing UDFs, users can significantly enhance their productivity and the quality of their analytical outcomes.
UDFs in Action - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
User-Defined Functions (UDFs) are a powerful feature in many programming environments, allowing users to create custom functions tailored to their specific needs. These functions can significantly extend the capabilities of built-in functions like VLOOKUP, providing more flexibility and functionality. However, with great power comes great responsibility. Maintaining and sharing UDFs requires a disciplined approach to ensure they are reliable, understandable, and accessible to other users who may need them. This involves adhering to coding standards, documenting the functions thoroughly, and considering the security implications of sharing code. It's also important to ensure compatibility and maintainability, so that UDFs continue to function correctly as the underlying systems evolve.
From the perspective of a developer, the following best practices are essential for maintaining and sharing UDFs effectively:
1. Use Clear and Consistent Naming Conventions: Names should be descriptive and follow a consistent pattern that makes the purpose of the UDF obvious. For example, a UDF that extends VLOOKUP to include a default value might be named `VLOOKUPWithDefault`.
2. Document Thoroughly: Every UDF should come with detailed documentation explaining its purpose, parameters, return values, and any exceptions it might raise. This is crucial for others to understand and use your UDF correctly.
3. Implement Error Handling: UDFs should be robust and handle errors gracefully. This could involve checking for invalid inputs and returning user-friendly error messages.
4. Optimize for Performance: UDFs can sometimes be slower than native functions. It's important to optimize the code for performance, especially if the UDF will be used in large-scale applications.
5. Version Control: Maintain a version history for your UDFs. This allows you to track changes over time and revert to previous versions if necessary.
6. Test Extensively: Before sharing a UDF, it should be tested under various scenarios to ensure it behaves as expected.
7. Secure Sharing Mechanisms: When sharing UDFs, use secure channels and consider the implications of distributing code that might contain sensitive logic or data.
8. Compatibility Checks: Ensure that your UDFs are compatible with different versions of the software they are intended for, and clearly state any limitations.
9. Deprecation Strategy: Have a plan for deprecating older UDFs, including communicating changes to users and providing support for transitioning to updated versions.
10. Community Feedback: Encourage users to provide feedback on your UDFs and be open to making improvements based on their experiences.
For instance, consider a UDF designed to find the next highest value in a range that exceeds a given threshold. The function, let's call it `NextAboveThreshold`, would not only need to be well-documented and tested but also designed in such a way that it can be easily understood and modified by other users who might need to adjust the threshold value or the range it applies to.
By following these best practices, developers can create UDFs that are not only powerful and useful but also maintainable and shareable, ensuring that their custom solutions have a lasting impact.
Best Practices for Maintaining and Sharing UDFs - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
As we delve into the future of Excel functions, it's clear that the capabilities of VLOOKUP are being transcended by more dynamic and versatile alternatives. The evolution of Excel is marked by the introduction of functions like XLOOKUP and FILTER, which offer greater flexibility and power in data retrieval and manipulation. User-Defined Functions (UDFs) play a pivotal role in this transformation, allowing users to tailor Excel to their specific needs and extend its functionality beyond pre-built features.
From a developer's perspective, the creation of UDFs using VBA or javascript API in excel for Office 365 opens up a realm of possibilities. These custom functions can interact with Excel's calculation engine in sophisticated ways, enabling solutions that were previously unattainable with standard functions. For instance, a UDF can be designed to perform fuzzy matching, a feature not available with VLOOKUP, thus providing more accurate results when dealing with human-generated data.
For end-users, the shift towards UDFs and advanced functions means that they no longer have to rely solely on exact match scenarios. They can now process data more intuitively, reflecting the way they think about their information. This user-centric approach to function development is a significant leap forward, making data analysis more accessible to a broader audience.
Here's an in-depth look at how the future of Excel functions is shaping up:
1. integration with Artificial intelligence: Excel is integrating AI capabilities to provide smarter and context-aware functions. Imagine typing a natural language query and having Excel present you with a custom function that understands and processes your request.
2. Advanced Array Handling: The introduction of dynamic arrays has revolutionized formula writing in Excel. Functions like SORT, UNIQUE, and SEQUENCE work seamlessly with arrays, eliminating the need for cumbersome workarounds that were necessary with VLOOKUP.
3. Custom Function Libraries: Users can now build and share libraries of UDFs, creating a community-driven repository of functions tailored for various industries and use cases.
4. real-time Data processing: With functions like WEBSERVICE and FILTERXML, Excel is moving towards real-time data processing capabilities, allowing users to retrieve and manipulate live data from the web within their spreadsheets.
5. Enhanced Collaboration: Co-authoring features and integration with cloud services mean that UDFs can be used and improved collaboratively, fostering a more connected and productive working environment.
6. cross-platform compatibility: UDFs created with the JavaScript API are cross-platform, meaning they work on Excel for Windows, Mac, and Excel Online, ensuring a consistent experience across devices.
To illustrate, let's consider an example where a marketing analyst needs to extract insights from customer feedback. Traditional functions might struggle with the variability of the data, but a UDF can be crafted to categorize comments based on sentiment, frequency of specific terms, or even customer demographics, providing a level of analysis that goes far beyond what VLOOKUP could offer.
The future of Excel functions is not just about replacing VLOOKUP; it's about reimagining the possibilities of data manipulation and analysis. With UDFs at the forefront, users are empowered to push the boundaries of what's achievable in Excel, making it an even more powerful tool for personal and professional use. The journey beyond VLOOKUP is an exciting one, filled with innovation and endless potential.
Beyond VLOOKUP - User Defined Functions: UDFs: Custom Solutions: Creating UDFs to Extend VLOOKUP Capabilities
Read Other Blogs