Setting Cell Value as Formula - excel

Could someone tell me what I am doing wrong with this sytax?
Worksheets("LTXN Report").Range("A2").Formula = "=""####-#""&IF(Launch!C7<>,RIGHT(Launch!,LEN(Launch!C7)-5),IF(Launch!C15<>,RIGHT(Launch!C15<>,LEN(Launch!C15)-5),IF(Launch!C23<>,RIGHT(Launch!C23,LEN(Launch!C23)-5),)))"
Essentially what I am doing is setting a clear function that copies a back up version of my sheets and replaces the previous version. However, on my launch worksheet, there are three options to search by (represented by cells C7, C15, and C23). The spreadsheet will pull transaction data and then filter it into a report, and I am trying to have this formula be filled out in the A2 cell of the new report when the new page is created.
I keep getting an object error. It seems like it doesnt like me using #'s or *'s to mask the account number in the function. Any ideas on how I could still do this?

I got it here. I simply had the quotes incorrect.
Worksheets("LTXN Report").Range("A2").Formula = "=""****-*""&IF(Launch!C7 <> """",RIGHT(Launch!C7,LEN(Launch!C7)-5),IF(Launch!C15 <> """",RIGHT(Launch!C15,LEN(Launch!C15)-5),IF(Launch!C23 <> """",RIGHT(Launch!C23,LEN(Launch!C23)-5),"""")))"
works!

Related

How to look through a sheet and find a value, get the column, and then count how many times a value appears in that column

I am working with data that is sent to me. The sheets always contain the same headers though they aren't really headers because it doesn't come in table form, but the columns change every pull so it is never in the same column so I can't do the Index Match like I'm used to. I need to get this to work without converting the data to a table because others that use this don't know how to do that. Is there a way to search the sheet to find the cell containing the value, capture that column address, and then count how many times the column contains a letter?
I have a front excel page that keeps account of how many times something happens. Currently I use this formula =COUNTIF('UDO '!AJ:AJ,"Y"). It works the only thing is that I can't set it up as an array because the column isn't always AJ, so I'm always having to change it manually and I'd like to automate it. So I want to be able to search the sheet that contains the information for the text value example: "Review Required FY*" and get the column that contains this (it should be a unique value) then I want to look down that column and countif it has a "Y" or "y" marked in the cell. The sheets are always varying in length and column numbers. I thought about using an HLookUp but I can't get it to work. I also could not get Index Match to work, because I never know how much data or the column order the Audit tab will be in or have.
So on the Main tab I have a cell that counts how many files I have to audit I want to go to Audit tab, look for "Review Required FY*", capture that column and count how many times "Y" or "y" are there. I'd like to be able to set this up to do it all by itself.
I currently do not have any code because I can't find anything that works.
Using VBA
Option Explicit
Sub Looper()
Dim ws As Worksheet, Found As Range, LR As Long
For Each ws In Worksheets
Set Found = ws.Cells.Find("Review Required FY*")
If Not Found Is Nothing Then
LR = ws.Cells(ws.Rows.Count, Found.Column).End(xlUp).Row
MsgBox Application.WorksheetFunction.CountIf(ws.Range(ws.Cells(1, Found.Column), ws.Cells(LR, Found.Column)), "Y")
End If
Set Found = Nothing
Next ws
End Sub
Assuming the header only appears once, you can find out what row your header is in you can use an array formula like this (apply using Ctrl+Shift+Enter):
=MAX(ROW(A1:A10)*COUNTIF(OFFSET(A1:Z1,ROW(A1:A10)-1,0),"Review Required FY*"))
(looks in the first 10 rows across A:Z)
You can feed the result of that into a lookup to find the column number.
EDIT - something like this:
The first formula needs to be entered using Ctrl+Shift+Enter but the other 2 do not.
The 1000 in the last formula is a best guess at how much data there might be below your header - no problem setting that much larger to be on the safe side, as long as you don't try to count past the end of the sheet.

Inserted formula with cell reference does not recognize new input

I swear this just worked yesterday...
I have a program that creates formulas within certain cells that depend on subsequent data entries into other cells:
Cells(i, 40).Formula = "= (N" & i & ")/AP" & i
So, APi can be input and/or changed after the fact, and the formula should give you the result for whatever value is there. However, I get a #Div/0! error no matter what value is in that cell. When I evaluate the formula (within Excel) and step through the calculations, it shows this (for one particular cell):
= (N64)/AP64 = (47.35)/AP64 = 47.35/AP64 = 47.35/9 = #DIV/0!
So, the formula recognizes that there is a value in the cell AP64, but then does not use it to properly calculate the result.
As I said at the top, this worked as I expected yesterday afternoon when I was testing it. Now that I need other people to start using it, of course, it doesn't. I changed nothing within the program relative to these lines of code.
I apologize if this is answered elsewhere - I really have no idea how to create a search for this type of problem.
Two things to check:
1) Value of the cells used is formatted to a number (i've had #Value based on that a couple times) and
2) verify that modifying the code using fixed references provides the appropriate output ("A16" for some reason wasn't recognized as a cell reference in one I had show up). E.g., "$N" & i & "/$AP" & i
If those both look alright, you might try something like:
.Range(.Cells(3,40),.Cells(lr,40)).Formula = "=$N3/$AP3" 'ensure no random spaces
This should act like a fill-down in which the # 3 is iterated with the same row as the formula.

How to do this lookup operation in Excel

There are two sheets (sheet1 & sheet2) in my Excel file, it's like daily work routine (entry date, pickup date, dispatch date). Some details will change as per the work flow and even new entries will appear.
I just need to compare both files if a change occurred in one cell it must have to show entire row of sheet1 (I can't specify exact headline for that all details are too precious and it has more than 100 headlines).
So if there is any formula for that please let me know like
IF+VLOOKUP
please correct below given formula
=If(RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX)=(RECHERCHEV(A2,sheet2!A8:FM257,1,FAUX);"";RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX))
It's the French version.
Try this array formula in cell A1 of sheet3 and drag across and down.
=IF(AND(EXACT(Sheet1!1:1,Sheet2!1:1)),"",Sheet1!A1)
Not really sure what you're looking to do here, and I don't speak french, but it looks like you have an extra parenthesis before your 2nd RECHERCHEV function.
Try this :
=If(RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX)=RECHERCHEV(A2,sheet2!A8:FM257,1,FAUX);"";RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX))
Though I'm not sure why the IF function uses semi-colons, but the RECHERCHEV uses commas, so maybe this:
=If(RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX)=RECHERCHEV(A2,sheet2!A8:FM257,1,FAUX),"",RECHERCHEV(A2,sheet1!A8:FM264,1,FAUX))
Also it seems you want the entire row to update, so I am not sure how this vlookup would work since the arrays start in different rows than the lookup value.

Assign a value to a variable [Excel]

I'm making a basic inventory list for my place of work and want to make it easier for future inputs and changes. So far I have inputted all of the model numbers for our inventory, and I was wondering how I could assign a price to the model number, so that it automatically fills it into the cell two cells right. I'm also working with around 50 model numbers, so it would be a lengthy function.
Example:
B E
778740 125.99
778739 120.99
778740
Is there a way that the second "778740" could be automatically filled in? I'm fairly new to excel and I can't find this problem, although I know it is very simple and exists. Even if some one could link me it that would be very much appreciated. Thank you!
Suppose your headers are in row 1, model numbers in column A and prices in column B. You could use the following formula in cell B3 and drag it on down as far as you need. Then what you fill in in column A matches something above, the cell next to it will automatically populate. And otherwise it stays blank, letting you know it is on you to fill it in (though once you do, the formula will no longer be there, so if you later fill in a match above, the magic is gone).
=iferror(indirect("B" & (1+match(A3,A$2:A2,0))),"")
The match function returns an error if nothing is found, and ifError will handle that by leaving your cell blank. If a match is found, we get the value from the corresponding row in column B.

MATCH function suddenly stopped working

I wrote this VBA macro for Excel code many years ago and it has suddenly stopped working. I'm trying to find the row index in one sheet that exactly matches an entry in the current sheet. The line of code that has stopped working is:
Cells(rr, cc + 1).Value = "=MATCH(RC[-1], Num, 0)"
I'm not sure what Num is, since it isn't referenced anywhere in the macro earlier. In particular, I don't see how it references the worksheet i'm interested in.
If you were trying to put a formula into the cell defined by row:=rr, column:=cc+1 then the code really should be,
Cells(rr, cc + 1).FORMULAR1C1 = "=MATCH(RC[-1], Num, 0)"
(sorry - all caps for emphasis) That formula would make use of a Named Range called Num. Check Formulas ► Defined Names ► Name Manager for its existence. It will refer to a single row or column of cells where the lookup for the value of one cell to the left is performed.
If you try and put an xlR1C1 style formula in as the .Value, it may be correctly interpreted by the worksheet overhead as a formula. However, without a defined Num range, this would produce the #NAME? error on the worksheet.
The problem turned out to be a bad data entry in the worksheet I was trying to MATCH to. I don't know why it didn't just return a FALSE value. However, I have solved my problem thanks to the help from this site.
Thanks.

Resources