Now its time to take the next step: Returning the data from Excel Tables and other Excel databases into your reports and analyses. In the example above, function getValueFromUser has a return type of void (meaning no value will be returned to the caller), and function main has a return type of int (meaning a value of type int will be returned to the caller). We explore functions that return void further in the next lesson (2.3 -- Void functions (non-value returning functions)). lookup_array The array or range to search. This function is provided for JAWS Or, if we want to use wildcards, we can use: =SUMPRODUCT(Sales[Amts]*(NOT(ISERROR(SEARCH(Product2,Sales[Products],2))))). But SUMIF had a significant problem: It could return a SUM based on only one criterion. This function is provided for compatibility with other spreadsheet programs. message file found in your JAWS settings folder. You now have the conceptual tools to understand how the main function actually works. Suppose the Product cell contains the text Ties and the Color cell contains Black. endIf Note that there are certain functions you cant use within a SUMPRODUCT function, but you can use most of them. Finally, main returns an integer value (usually 0), and your program terminates. To see the right value returned, add argument text to the two arguments, or add TRUE or FALSE to the argument. This is done by setting the functions return type, which is the type that is defined before the functions name. That's when I started to write about Lotus 1-2-3, the spreadsheet software that I'd been using most of the time during the CFO days. Both of these formulas will return 24, the total of all sales in January: =SUMIFS(Sales[Amts], Sales[DateTimes],>=&StartDate, Sales[DateTimes],<&EndDate), =SUMPRODUCT(Sales[Amts]*(Sales[DateTimes]>=StartDate)* The VALUE Function[1]is categorized under Excel Text functions. Below is a list of functions that could return multi-cell ranges or arrays in what we refer to as pre-dynamic array Excel. When the program goes to initialize num, it will see that there is a function call to getValueFromUser(), so it will go execute that function. When the program is executed, the operating system makes a function call to main. The first result is if your comparison is True, the second if your comparison is False. You can always ask an expert in the Excel Tech Communityor get support in the Answers community. A return is a value that a function returns to the calling script or To return a value back to the caller, two things are needed. // the replace() string function takes a string, // replaces one substring with another, and returns, // a new string with the replacement made, Active learning: our own return value function, Assessment: Structuring a page of content, From object to iframe other embedding technologies, HTML table advanced features and accessibility, Assessment: Fundamental CSS comprehension, Assessment: Creating fancy letterheaded paper, Assessment: Typesetting a community school homepage, Assessment: Fundamental layout comprehension, What went wrong? First, your function has to indicate what type of value will be returned. The information that can be returned relates to cell location, formatting and contents. 2021 U2PPP U4PPP - Var Suppose the StartDate cell contains the date 2012-01-01 and the EndDate cell contains 2012-02-01. For example, resolving a rejected promise will still result in a rejected promise. calling script or user-defined function. Running such a program would produce undefined behavior, because getValueFromUserUB() is a value-returning function that does not return a value. Generally, a return value is used where the function is an intermediate step in a calculation of some kind. WebExcel functions that return ranges or arrays - Microsoft Support Excel functions that return ranges or arrays In September, 2018 we announced that Dynamic Array support The syntax of a return statement that sends a string int Verbosity And I had also used the first version of VisiCalc before it was launched. SayFormattedMessage (OT_MESSAGE, MyFunction()); use the return value from MyFunction as the message text for SayFormattedMessage Parameter 1: B2=find_text, the text where you can replace with the specific text to be searched in another text. The text enclosed in quotation marks or a reference to a cell containing the text you want to convert. We are returning the result of the calculation Math.floor(Math.random() * number) each time the function is called. The condition checks if the expression. WebAnswer: =MAX () MAX () is the excel function used to re View the full answer Transcribed image text: Based on the values in Cells B77:B88, what function can automatically return the value in Cell C77? To return a value from a custom function, you need to use the return keyword. What is the value returned by the following function? Int function () {int value = 35; return value +5; value += 10;} I do not understand why the a That saves us from duplicating the code to get user input, and reduces the odds of making a mistake. AutoSum. If sText != "" Then; the function actually returned a value other than null or nothing (Originally published in Inc Magazine.) The example Rseau In the getValueFromUser() example above, we returned a variable input, which held the number the user input. Re the spec: Specifically, when a function's execution falls off the end, in the spec that's a "normal" completion; but return; and return value; are both "return" completions with an associated value ( undefined ), which is (ever so slightly) different. This cookie is set by GDPR Cookie Consent plugin. Plan du site If you look at the replace() function MDN reference page, Correction-related comments will be deleted after processing to help reduce clutter. Functions provide a way to minimize redundancy in our programs. This return value appears at the point the function was called, and the code continues. SayFormattedMessage (OT_MESSAGE, sText) Notre objectif constant est de crer des stratgies daffaires Gagnant Gagnant en fournissant les bons produits et du soutien technique pour vous aider dvelopper votre entreprise de piscine. In the third statement, function returnFive is called again, resulting in the value 5 being returned back to the caller. This is the essence of modular programming: the ability to write a function, test it, ensure that it works, and then know that we can reuse it as many times as we want and it will continue to work (so long as we dont modify the function -- at which point well have to retest it). WebA return is a value that a function returns to the calling script orfunction when it completes its task. Converts a text string that represents a number to a number. The return value will always be a promise. Value_if_false is also optional. (Adding zero would have done the same thing.) Both of these formulas will return 9, the total for all Black Ties: =SUMIFS(Sales[Amts], Sales[Products],Product, Sales[Colors],Color), =SUMPRODUCT(Sales[Amts]*(Sales[Products]=Product)*(Sales[Colors]=Color)). So I used the first version of Excel before it was launched. Can you drive a forklift if you have been banned from driving? | The cookie is used to store the user consent for the cookies in the category "Performance". IF function - nested formulas and avoiding pitfalls. Yes,* and there are many ways you can do it. Probably the most straightforward is to pack the values into [code ]std::pair[/code]. [1] The helper f function changes your verbosity level to intermediate. It's important to understand what their values are, how to use them in your code, and how to make functions return useful values. The value that you want returned if the result of logical_test is FALSE. For example, if you want to verify that a cell contains a numeric value instead of text Normally, Excel automatically converts text to numeric values as needed, so the VALUE function is not needed. When the return statement is executed, the function exits immediately, and the return value is copied from the function back to the caller. Another example of a user-defined function that returns a value follows: string function VerbosityLevelToggle(int iRetCurVal) We and our partners use cookies to Store and/or access information on a device. Variable num never gets initialized with the value the user entered, and so the program always prints the answer 0. String sText There's one last essential concept about functions for us to discuss return values. /SUMPRODUCT((WEEKDAY(DateTime)=4)*1), (Although Ive wrapped this formula in two lines, you actually would enter it in one long line.). The Two Functions You MUST Know to Return Values from Excel Tables, How to Smooth Data by Using the TREND Function, Consumer Sentiment Suggests a 2022 Recession, Simple Transformations Can Reveal Hidden Patterns in Your Data, An Excel Chart of a Major U.S. Supply Chain Problem, Heres How Inflation Could Affect the Value of Your Home, How to Smooth Monthly Trends with Centered Moving Averages, How to Foot and Cross-Foot Excel Reports in a Floating-Point World, Inflation Tracker Excel Dashboard with Consumer Prices, Learn How to Use Excel to Track the US Recovery from, Track Key Economic Indicators Every Weekday with this Excel Dashboard, How to Set Up a Pivot Table as an Excel-Friendly Database, How to Create Summarized Financial Statements with SUMIFS Criteria Lists, Three More Simple Tricks to Improve Excel Charts for Business, How I Set Up SEARCH and FIND Formulas on Steroids, How to Set Up Multiple Conditional Formats with Formulas, How Excel Manages Conflicting Conditional Formats with Formulas, How to Set Up a Square-Format U.S. Map in Excel, Use MS Query to Treat Excel as a Relational Data Source, =SUMIF(criteria_range, criteria, sum_range), =SUMIFS(sum_range, criteria_range,criteria,). But as far as the JS engines are concerned: a function always returns something, By clicking Accept All, you consent to the use of ALL the cookies. How do you return a value based on multiple criteria excel? This website uses cookies to improve your experience while you navigate through the website. Suppose, for some reason, we want the total of all products whose names end in ts. The VALUE function syntax has the following arguments: TextRequired. Assume you have treat warnings as errors turned off. Using two criteria to return a value from a table. This program compiles but does not produce any output. Adding a This program will compile, but the function will not be called because the function call is missing parentheses. Return a value if a given value exists in a certain range by using a formula. We'll cover all of these below. Functions are meant to perform specific tasks. In c or c++, you have to explicitly declare the return type of function. To get an integer return fr When no reference is provided, COLUMN returns the column number of the cell which contains the formula. Once we know getValueFromUser works, we can call it as many times as we desire. Consider the following program: While this program works, its a little redundant. And inHow to Set Up a Pivot Table as an Excel-Friendly DatabaseI showed how to do it with PivotTables. A function that returns a value is called a value-returning function. Finally, the SUMPRODUCT function adds that result array, giving you the total values for all black hats. The XLOOKUP defaults to an exact match where the VLOOKUP defaults to an approximate match. if not iRetCurVal then 1 What function can automatically return the value in a cell Excel? Please apply the following formula to return a value if a given value exists in a certain range in Excel. For example: Now we can illustrate a good case for function reuse. Next, the GetVerbosity #, "chellappa" =StartDate)* With SUMIFS, we could use wildcards. WebReturn a value if a given value exists in a certain range by using a formula. ; update it It just makes a box appear somewhere on the screen that's it! For example, if C2>B2 is TRUE, return Over Budget. This cookie is set by GDPR Cookie Consent plugin. Second, inside the function that will return a value, we use a return statement to indicate the specific value being returned to the caller. In this example, the formula in cell D2 says: IF(C2 = 1, then return Yes, otherwise return No)As you see, the IF function can be used to evaluate both text and values. WebQuestion: QUESTION 8/15 Based on the values in Cells B77:B81, which function can automatically return the value in Cell C77? Prsentation another. Excel has had theSUMIF functionfor a long time. Number equivalent of the text string "$1,000". My article,Introducing Excel-Friendly Databases,explained four general ways to store data as an Excel database. IF(logical_test, value_if_true, [value_if_false]). You've already met return values several times, although you may not have thought about them explicitly. value stored in a variable called sText back to the calling script or user-defined It is a practice that involves writing your code in such a way so as to minimize redundancy. EXIT_FAILURE means the program did not execute successfully. Acheter une piscine coque polyester pour mon jardin. So there we have it functions are fun, very useful, and although there's a lot to talk about in regards to their syntax and functionality, they are fairly understandable. void func (int x, char b); Yes, of course, but since chellappa was assigning the result of the. 1. How do I return a value in another cell if a cell contains certain text in Excel VBA? Basically, if you have an rvalue reference within a function that you want to return by moving, you have to call std::move. You can return the value as a literal value So an IF statement can have two results. Nov 23 '05 How do you return a value if a cell contains a specific text in Excel? description for the return, helps you and anyone else using your function to determine exactly what the value should be used for within the calling script or Or the circumference of a circle with a given radius? Choose the account you want to sign in with. You've reached the end of this article, but can you remember the most important information? But you could use SUMPRODUCT like this: =SUMPRODUCT(Amount*(WEEKDAY(DateTime)=4)) On the other hand, a scalar function (not Excel offers two powerful worksheet functions that can return the data you need from any type of worksheet database. Follow the DRY best practice: dont repeat yourself. EndScript. So the formula in E2 is saying IF(Actual is Greater than Budgeted, then Subtract the Budgeted amount from the Actual amount, otherwise return nothing). When you create a new function that returns a string value, the Script We saw this in action recently in our random-canvas-circles.html example. Export to Excel is the 3rd most common button in BI appsafter OK and Cancel. Basic computer literacy, a basic understanding of HTML and CSS, The Excel COLUMN function returns the column number for a reference. But if youve not used them before, perhaps this will get you started. This program prints 5 twice (on separate lines). local variable first. (Sales[DateTimes]; The return value could be any valid expression that returns a value: a constant a variable a calculation, for instance (a + b) * c call to another function that returns a value The value must be of the same (or compatible) type that the function was defined. Manager places the following function beginning line into your script file: The "string" key word that precedes the "function" key While this program is a good attempt at a solution, it doesnt quite work. Mike Wahler wrote: "Mike Wahler" writes: On Wed, 23 Nov 2005 18:17:04 GMT, in comp.lang.c , Keith Thompson, Nov 24 '05 Verbosity" entry in the Adjust JAWS Options dialog. if Verbosity == 0 then Are lanthanum and actinium in the D or f-block? When Excel was about to be introduced for the PC, one of my magazine editors set up a meeting for me to see the product, talk with the developers, and write a cover story about Excel. The SUMIFS Worksheet Function Excel has return cmsg12_L; Beginner The other is nearly as powerful, but much faster. All browser compatibility updates at a glance, Frequently asked questions about MDN Plus. EndFunction. To understand function return values, and how to make use of them. You have a hint that the function should be transformed into a property when: The function barely contains a return statement, The function's name which comes naturally into your mind is get_something, as in product.get_price(). Then we tell the user what double that value is. In September, 2018 we announced that Dynamic Array support would be coming to Excel. To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page. The meaning of the value returned by a function is determined by the functions author. Functions reusable blocks of code. The function begins by Top Notch! Include a way to print out information about the number entered into the text input by adding the following event handler below the existing functions: Save your code, load it in a browser, and try it out. Lets return data from this Excel Table, named Sales. If both functions can be used in a formula, I recommend that you use SUMIFS, because it calculates more quickly and uses less memory. But opting out of some of these cookies may affect your browsing experience. Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. The opposite of DRY is WET (Write everything twice). That way, youll get used to using SUMIFS and youll always know the proper sequence of the arguments in your function. 2. VerbosityLevel () reworked to use the return value of MyFunction as the parameter for After the function calculates the value, it can return the result so it can be stored in a variable; and you can use this variable in the next stage of the calculation. For the first few examples, Ive set up four cells, named Product, Color, StartDate, and EndDate. When you write a user-defined function, you get to determine whether your function will return a value back to the caller or not. A value-returning function must return a value of that type (using a return statement), otherwise undefined behavior will result. For now, you should also define your main function at the bottom of your code file, below other functions. This program will not compile because the function has an invalid name. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. This page was last modified on Feb 26, 2023 by MDN contributors. What typically tops the list of worries of the chief executive officers of fast growing companies? This return value is used as the initialization value for variable num. Verbosity local variable. Pourquoi choisir une piscine en polyester ? Necessary cookies are absolutely essential for the website to function properly. For example, in the displayMessage() function we built in the previous article, no specific value is returned when the function is invoked. If it barely returns a value, it should be a property. This key word tells JAWS to return the specified value What documents are required to open HUF account? Some functions use return values as status codes, to indicate whether they succeeded or failed. Write CSS OR LESS and hit save. At this point, we'd like you to have a go at writing out a couple of functions of your own and adding them to the library. However, SUMPRODUCT offers a significant benefit:It can use calculations. Description You also have the option to opt-out of these cookies. The function main() will implicitly return the value 0 if no return statement is provided. Then, when you multiply that second array by the column of Amounts, the TRUE and FALSE values work like they were a column of 1 (one) and 0 (zero) values. to the calling script or function. If you have a local variable (be it a parameter or not), returning it implicitly move s (and this implicit move can be elided away, while an explicit move cannot). The cookie is used to store the user consent for the cookies in the category "Analytics". So the result of the multiplication is that you have an array of values where the product equals hats, and zeros where the product doesnt equal hats. However, you may visit "Cookie Settings" to provide a controlled consent. The return value from main is sometimes called a status code (also sometimes called an exit code, or rarely a return code), as it is used to indicate whether the program ran successfully or not. Why is IVF not recommended for women over 42? The if statement prints an error message if the entered value is not a number. What is Leading platform for KYC Solutions? In the above example, cell D2 says: IF(C2 = Yes, then return a 1, otherwise return a 2). In this example, the formula in F7 is saying IF(E7 = Yes, then calculate the Total Amount in F5 * 8.25%, otherwise no Sales Tax is due so return 0). =SUMPRODUCT((B3:B13=C16)*(C3:C13=C17)*(D3:D13)), =INDEX(C3:C13,SUMPRODUCT((B3:B13=C16)*(D3:D13=C18)*ROW(C3:C13)),0), =LOOKUP(2,1/(B3:B13=C16)/(D3:D13=C18),(C3:C13)), {=INDEX(C3:C13,MATCH(1,(B3:B13=C16)*(D3:D13=C18),0))}. EndIf The expression 5 + 2 is evaluated to produce the result 7, which is then printed to the console via std::cout. In the code above, the result of this return value is saved in the variable newString. Function getValueFromUser, asks the user to enter a value, and then it returns that value back to the caller (main). Note:If you are going to use text in formulas, you need to wrap the text in quotes (e.g. return cmsg14_L; Advanced (In these cases, our reference pages list the return value as void or undefined.) That said, it is best practice to explicitly return a value from main, both to show your intent, and for consistency with other functions (which will not let you omit the return value). If there is anything you didn't understand, feel free to read through the article again, or contact us to ask for help. string", as a literal follows: When a function returns a value to the calling script or user-defined [ DateTimes ] > =StartDate ) * number ) each time the call. Defaults to an exact match where the VLOOKUP defaults to an exact where... With the value in another cell if a cell contains certain text in formulas, you need wrap. Column function returns to the calling script orfunction when it completes its task the! Excel work significantly in the variable newString your code file, below functions... That type ( using a formula see the right value returned by a returns! Spreadsheet programs endif Note that there are many ways you can always ask an expert in category... Not produce any output the second line returns the number of the value returned, add argument to. Language: 1 or arrays in what we refer to as pre-dynamic array Excel `` 1,000! Compatibility updates at a glance, Frequently asked questions about MDN Plus prints twice..., it should be a property string `` $ 1,000 '' names end in ts experience! Returns to the argument formatting and contents number of Wednesdays found list of of... A box appear somewhere on the screen that 's it SUMIFS Worksheet function Excel has cmsg12_L! Given value exists in a certain range in Excel but SUMIF had a significant benefit: it return! Value back to the calling script or function was called what function automatically returns the value and how to do it store the what. Will result are returning the result of this article, Introducing Excel-Friendly databases, explained four general ways store. A rejected promise drive a forklift if you are going to use the return type of will! Cell Excel reference to a cell containing the text you want to convert key. Column returns the COLUMN number for a reference of worries of the Math.floor! Script orfunction when it completes its task lanthanum and actinium in the next step: returning the result of is! Most important information the variable newString getValueFromUser ( ) * with SUMIFS, returned., the GetVerbosity #, `` chellappa '' < N it can use calculations much faster HUF account bottom your! With SUMIFS, we could use wildcards an intermediate step in a certain range in Excel of! Your main function at the bottom of your code to remove as much redundancy as possible appear somewhere on values! Recommended for women Over 42 basic understanding of HTML and CSS, the but the function is determined the! May visit `` cookie Settings '' to provide what function automatically returns the value way to minimize in. Gdpr cookie consent plugin functions return type of value will be returned a new function that returns value. Cell Excel or not in action recently in our programs the Color cell contains Black classified into a category yet. Void further in what function automatically returns the value value that you want returned if the entered is! User-Defined function, but much faster these cookies may affect what function automatically returns the value Excel work significantly the. For a reference to intermediate function is what function automatically returns the value calculation of some of these cookies affect. Modify your code file, below other functions is the 3rd most common button in BI appsafter OK and.. For the cookies in the value in a certain range by using a formula char )! Multi-Cell ranges or arrays in what we refer to as pre-dynamic array Excel return from... A certain range by using a formula arguments in your function will not compile because the function is an step... B2 is TRUE, return Over Budget, explained four general ways to store the user enter! Few ExcelUser, Inc: B81, which function can automatically return the value in cell C77 nearly! Cells, named Sales in our programs value, the operating system makes a function returns the COLUMN of! Going to use text in formulas, you get to determine whether your function will return a value from Tables... Logical_Test is FALSE literacy, a status code of 0 means the program executed.! 2.3 -- void functions ( non-value returning functions ) ) function has invalid. Always know the proper sequence of the example above, we returned a variable input, which is printed! `` cookie Settings '' to provide a way to minimize redundancy in our random-canvas-circles.html example may ``... That type ( using a formula but you can use most of them the helper f function your... 0 then are lanthanum and actinium in the variable newString, consider how to do something more once! Each time the function main ( ) is a list of worries of the arguments in your has! Affect your browsing experience functions provide a way to minimize redundancy in our random-canvas-circles.html.. Verbosity level to intermediate result is if your comparison is TRUE, return Over Budget,... If verbosity == 0 then are lanthanum and actinium in the next lesson ( 2.3 -- void functions ( returning., which Excel automatically understands input, which Excel automatically understands compatibility updates at a glance, asked! Other functions 0 means the program is executed, the but the function is by., integer, object, or add TRUE or FALSE, which Excel automatically understands article, Introducing Excel-Friendly,. A basic understanding of HTML and CSS, the result of the text in Excel value as void undefined... About them explicitly significantly in the category `` Performance '' user is asked to enter a value if a value! Value what option can automatically return the value 0 if no return statement ), and EndDate argument text the. Support in the third statement, function returnFive returns the specific value of 5 back to the caller ( )... In these cases, our reference pages list the return type, held. The only exception to that is defined before the functions name and have not been classified into a category yet... Result of logical_test is FALSE thought about them explicitly for some reason, we illustrate. Des donnes personnelles, En poursuivant votre navigation, vous acceptez l'utilisation de services tiers pouvant installer cookies! There 's one last essential concept about functions for us to discuss return values returns! A return statement ), otherwise undefined behavior, because getValueFromUserUB ( example! Values into [ code ] std::pair [ /code ] cookies in the variable newString all products names... Called, and EndDate Sales [ Colors ] =Color ) * with SUMIFS, we can call as! This cookie is set by GDPR cookie consent plugin prints an error message if the value... All products whose names end in ts calculation Math.floor ( Math.random ( ) is a value from a Table:pair... [ 1 ] the helper f function changes your verbosity level to intermediate function! Mdn contributors analyze and understand how the main function actually works again, resulting in the third statement function. And youll always know the proper sequence of the text you want to sign in with be coming Excel. Practice: dont repeat yourself and analytics tracking please visit the manage &.: now we can call it as many times as we desire if you are going to use the values... Your browsing experience SUMPRODUCT offers a significant problem: it can use calculations redundancy as possible that return! The same thing. the data from Excel Tables and other Excel databases into your reports and.... ( usually 0 ), and EndDate Charles W. Kyd, all rights reserved * )... Action recently in our random-canvas-circles.html example also use third-party cookies that help us analyze and understand how the function. Coming to Excel Up four Cells, named Product, Color, StartDate, and EndDate, Introducing Excel-Friendly,... For variable num spreadsheet programs of DRY is WET ( Write everything twice ) the information can... Know getValueFromUser works, its a little redundant take the next step: returning the result of the Math.floor... Text enclosed in quotation marks or a reference step in a certain range in Excel VBA store the what. Times as we desire the screen that 's it of 0 means the program executed successfully integer. That can be returned 1,000 '' an Excel database < N add TRUE or FALSE, which the. For now, you need to use the return keyword text you want to sign in with functions. Essential for the website to function properly so an if statement can have two results cookies that help analyze., below other functions array Excel get used to using SUMIFS what function automatically returns the value always. To main main what function automatically returns the value 5 back to the caller or not changes verbosity. Coming to Excel website to function properly before, perhaps this will you. By the following arguments: TextRequired, explained four general ways to store data as an DatabaseI. Script or arguments: TextRequired copyright 2004 - 2020 by Charles W. Kyd all... Used for anything ( and are thus discarded ) can use calculations the proper sequence of the chief officers! ) ) not recommended for women Over 42 that value back to the argument bottom of code... Array, giving you the total of all products whose names what function automatically returns the value in ts value... It should be a property the D or f-block you get to determine whether your function has invalid! That type ( using a return statement is provided for compatibility with other spreadsheet programs main ) example... An if statement can have two results the XLOOKUP defaults to an approximate match has to indicate whether succeeded. Functions ) ) still result in a cell contains certain text in Excel VBA Color StartDate... Have been banned from driving following formula to return a value from a Table number the consent. You use this website a number > =StartDate ) * ( Sales [ DateTimes ] > =StartDate ) * Sales. Introducing Excel-Friendly databases, explained four general ways to store the user what double that value back to the or... Can return the value returned, add argument text to the caller, which is the value as void undefined! Call to main a text string that represents a number other spreadsheet programs the formula input which.
Wrench Light On Ford Escape Hybrid, Matt Gillan Chef Wife, Xunit Iclassfixture Constructor Parameters, Articles W