For the first time i was trying to use the IF statement on excel, and it seemed really simple to use, but for some reason even the most basic statement never works.
Example : =IF(A3=1;"Yes";"No") give no result as shown as #NOM?
I checked my regional settigns and my separator is ";", no doubt of it.
Anyone have an idea ?
The error
Are you using french Excel?
Then you have to use SI instead of IF.
This page helps to translate the formulas: https://fr.excel-translator.de/
Related
"Jeżeli" means "If" in the attached screenshot.
This kind of error usually means that the value in B481 is Text rather than Numeric.
I have made several formula to dynamically create a SQL query but to make it perfect, I want to add a condition : "if cell is not blank".
I've tried a lot of different syntaxe but even with a very simple one (see exemple below), I get an error.
My formula is :
="""" & SUBSTITUE(E2;"'";"''") & """"
It works well and give me "Accordéoniste d''hier"
I've tried
=IF(E2<>"";"""" & SUBSTITUE(E2;"'";"''") & """";"")
Excel display #NOM? in the cell but doesn't give me an explicit error.
I've tried a very simple one, but I get the same result : #NOM?
=IF(1=1;"Delivered";"")
I've tried ISBLANK but same result... I think there is something wrong and I don't see it...
Thanks for your help !
#rory is totally right. It looks like your Excel is in French, so you need to use SI instead of IF.
Excel works with local formulas, so you need to know the name of the functions in whatever language Excel has been set up.
Stack Overflow always post answer in english, and sometimes users like me need the translation of a function to their native languages. There's a trick to get the name of a function in a specific language I've used hundreds of times and it works pretty good with Stack Overflow.
Let's see your case. You see the solution is using the function IF and you need to know how is called that function in your language.
Of course there are several sources in Internet where you can check, but I like to use this one:
Google for the function in english, using words Excel Function. Always use the link that starts with https://support.office.com
Using that link will take you to the official documentation about that function, in english, but check the URL, the part of the language (in image it says en-us)
Change en-us for the initials of the language you want to see, and navigate to that new url. I don't know all of them but some of them are fr-fr for french, es-es for spanish, pt-br for portuguese (brazilian), pt-pt for portuguese, de-de for german, and so on.
In your case, you want in in french so replace en-us with fr-fr and you will see the name of the function in french. Same works for ISBLANK and other functions.
There you go. Now you know the name of the function in french, and you can apply it to your needs. This trick works for all functions documented in Excel. Hope it can help other users.
I want to chain in one Excel formula webservice and filterxml, but fail on something... The goal is to read out certain information with XPath from an API answer page, which is XML.
I'm doing so:
=DUMP(FILTERXML(WEBSERVICE(https://example.com/api);"response/answer/result";"position"))
But i get in this no meaningful error and don't know, what to adjust :( I'm using Office 365, so filterxml and webservice should work, as far i know.
UP:
After adding quotes to url, like =DUMP(FILTERXML(WEBSERVICE("https://example.com/api");"response/answer/result";"position")) got a further error too much arguments.
Shortening the XPath to =DUMP(FILTERXML(WEBSERVICE("https://example.com/api");"response/answer/result/#position")) did the work successfully.
I try to merge text with date in a single cell. I looked online and I found the following options:
=G5&TEXT(F5;"DD/MM/YYYY")
And
=CONCATENATE("ZIMMERMANN U-4600 ";TEXT(F5;"DD/MM/YYYY")).
Unfortunatelly , nothing works, although in the other forums everybody was happy with the result. I get a #VALUE! - error.
I played around with the formatting and the languages of windows while giving in the code but nothing helped.
The code has ; instead of , due to the fact that it is a european office-package (and it doesn't work with "," either).
I suspect the #VALUE! error is coming from the TEXT(F5;"DD/MM/YYYY") part. Do trying it alone in a cell as =TEXT(F5;"DD/MM/YYYY"). If this also is resulting in #VALUE! error, then this is the case.
Unfortunately the pattern "DD/MM/YYYY" in TEXT function must be according to the locale settings of the Excel and the system the Excel is running on. In German Excel it must be
=TEXT(F5;"TT/MM/JJJJ") for example.
Have a look at Control Panel - Region what pattern is used for dates there. Then do using the same in TEXT function.
See TEXT function -> Other format codes that are available for another method getting possible format codes directly from the Excel.
This is a big disadvantage of the TEXT function if the Excel file shall be exchanged between different users from different locales.
Better approach then would be:
=TEXT(DAY(F5);"00")&"/"&TEXT(MONTH(F5);"00")&"/"&TEXT(YEAR(F5);"0000")
since the pattern 0 is locale independent.
I am new to VBA and advanced formulas for that matter and would deeply appreciate some guidance here.
I have a workbook that acts as a GUI for a database in another workbook. I use the following array formula to act as a search function:
{=IF(ISERROR(INDEX('Client Contact Database.xlsx'!Data.ContactsFull,SMALL(IF('Client Contact Database.xlsx'!Data.ContactClients=$L$1,ROW('Client Contact Database.xlsx'!Data.ContactClients)),ROW(1:1)),2)),"",INDEX('Client Contact Database.xlsx'!Data.ContactsFull,SMALL(IF('Client Contact Database.xlsx'!Data.ContactClients=$L$1,ROW('Client Contact Database.xlsx'!Data.ContactClients)-1),ROW(1:1)),1))}
Although very sloppy, this works fine. However, I now need to add option buttons to toggle between searching for two different things. This means I have to replace the array formula from A3:L104 through VBA. My question is twofold:
How can I shorten this formula to under 255 chars to use with .FormulaArray? I tried putting it in two halves but my understanding of syntax is not sufficient.
Even if I got that to work, I imagine it would be extremely slow and inefficient. Is there a better way to go about this task?
Any help is greatly appreciated, I'm in way over my head with this. Thanks in advance.
First off, swap out your IF(ISERROR(<formula>), "", <formula>) for something that uses the IFERROR function. This will effectively cut your formula in half as IFERROR takes care of error control and default value without duplicating the formula.
=iferror(INDEX('Client Contact Database.xlsx'!Data.ContactsFull,SMALL(IF('Client Contact Database.xlsx'!Data.ContactClients=$L$1,ROW('Client Contact Database.xlsx'!Data.ContactClients)-1),ROW(1:1)),1), "")
I did not build all of the external references and named ranges for a full build environment, but I believe I transcribed that correctly.