Excel: IF ISBLANK Function Seeing 6 Additional Rows as Filled - excel

The project I am working on has several components, so let me start from the beginning. From a calendar program, I am supposed to download a roster of individuals that have signed up for a course and input their names into a Sign-In Sheet. Later, once attendance has been verified, certificates are made for each person who showed up.
I have built a macro that takes the raw data from the calendar and builds the Sign-In Sheet around the list of names, alphabetizes, and formats everything as we need it with a click of a button.
The problem I am running into comes from the certificate portion of the process.
In order to speed up this part, we tried to create a second sheet behind the Sign-In sheet that would pull all the information needed on the Certificates into a separate list that could easily be mail merged into the certificate template.
Three columns in Sheet2 are user specific and change depending on raw data from the calendar. I got these cells to talk to Sheet1 just fine by using the =(Sheet1!A8) function, then copying is down.
However, the other three columns have to be filled from a single cell on Sheet1 that gets typed in after the macro is run (such as the date and location), so it has to be a dynamic link to Sheet1. In addition I need it to look at another range and stop filling in cells on Sheet2 when it encounters a blank cell, so we are not wasting time deleting unneeded information.
I got this working for the most part using =IF(ISBLANK(Sheet1!$A$8:$A$207), "", (Sheet1!$B$2)), but for some reason, the formula is filling 6 extra rows that are actually blank within the A8:A207 range in Sheet1. For example, Sheet1 A8:A207 contains data up to A25, however, Sheet2 is filling in cells as if Sheet1 is filled up to A31.
I have checked these cells for spaces and hidden formulas that could throw off my IF ISBLANK formula, but have not met with any success.
Does anyone have any idea what could be causing these 6 extra cells to fill and what I can do to fix it?
Many Thanks!

Is the formula you posted (=IF(ISBLANK(Sheet1!$A$8:$A$207), "", (Sheet1!$B$2))) the exact formula you use in your sheet? You use absolute referencing in it, suggesting that for every time it appears, it looks at the same cells. Is this really what you want? I would have thought checking each line individually (=IF(ISBLANK(Sheet1!$A8), "", (Sheet1!$B$2)) would do what you describe – cybernetic.nomad

Related

Copying rows from one sheet to another - checking previously copied data and inserting data above row that says "Subtotal" in column G

A bit of background before I start. Essentially, I've got all workers to fill out a form of their 'whereabouts' and what work they did, this then automatically populates into the correct fields etc. Using Power Automate, however, this is in table format and will literally update a a type of master.
My answer to this has been to just pull every cell from the Master table (e.g =A1 of x sheet) that my Power Automate flow creates and just bring it onto a centralised spreadsheet. Then from my forms submission there is a unique reference for form submission in cell G on every row, which will be the time and date they submit their response.
My data all has formulas in (as explained above), therefore the last row will be pretty difficult to find as I can't just find the last row as I usually would - so this would usually just go to the last cell where there aren't formulas, right?
How would I be able to find the correct rows to copy over?
Ideally, I would check to see the values value in column G that appears in any other sheet, if they do, do not copy. If they don't then copy over and insert rows above the cell which contains the text 'Sub Total'
Not sure if I've just fully confused myself and it's super easy but I just can't figure it out and even get started on it.
I am struggling to even think of a solution, apologies.

skip if statement is false in excel mac

I am currently working on a database (that's why I needed to blur some cells.) and I want to copy some data from the first sheet according to the graduation status. We are planning to use this database for next years too, so I want it to copy the data automatically when someone adds information. I wrote a formula for this, it is copying the data as I want but it cant skip the false condition; as it can be seen, the 8-9-16-17th row in General Sheet is copied to Student Sheet.
I saw another problem like mine and tried to implement the formula in my sheet but I couldn't make it work.
The problem that another person was dealing with: Get cell value but skip row if wrong
The formula I found and tried to implement in my Excel book: =IFERROR(SMALL(IF(($B$2:$B$15="Denied"),$A$2:$A$15,""),ROW()-2),"")
The formula I used in my Excel book: =IF(GENERAL!E3 = "Student";Table1[#Name];"")
With Excel 365 you can use the Filter() function. In the sreenshot I used
=FILTER(A:C,B:B="student")
Be aware, though, that with any formula solution, the result will be dynamically recalculated, so if you are planning on adding any data to the filtered table, these manual data entries will become a problem when the formula updates and the previous results occupy different positions.
If your goal is to get a one-time copy of all the non-graduated Students in Sheet A, you could just sort the sheet by the status column and copy/paste the desired data into a new sheet. That pasted data will not change and you can make manual edits.

excel formula to return multiple results

I am currently using Index,Match to match records from one sheet to the other. Works great, except when I have multiple records with the same identifier. Let me explain:
The sheet named Open Leave Report contains the raw data (lookup values), while the sheet named Open Leave Capture contains the scrubbed data. So my formula looks like this
=INDEX('Open Leave Report'!O:O,MATCH('Open Leave Capture'!C9,'Open Leave Report'!B:B,0))
Works great, except when I have the following:
Column B Column O
Employee ID Continuous or Intermittent
1646484 Intermittent
1646484 Continuous
So when I type the Employee ID in the Open Leave Capture it always brings back the first row, but it ignores the second record. It looks like this:
Employee ID Type
1646484 Intermittent
1646484 Intermittent
Is there any way I can format my Index/Match formula to bring back both records?
I hope I explained this well
Don't use INDEX and MATCH for this...use PivotTables instead.
Whenever I want certain records from a list to appear in a different place, I turn my source data into an Excel Table, and make a PivotTable out of it, and then filter that PivotTable to show just the items I'm interested in.
No formulas, and as soon as you refresh the PivotTable it will automatically pick up any changes to your source data. Unlike formulas, which can be overwhelmingly complex to pick apart, and rely on you remembering to drag the formula down the page in order to ensure you capture any new data.
The solution is far simpler if you convert the source data into a table. Select the source data then use Insert > Table.
This solution has the following assumptions:
Source data has columns named "Employee ID" and "Type"
In the destination, the IDs to be looked up start from cell A2
In the destination, the values to be returned start from cell B2
This is formula to put into cell B2. This is an array formula. You need to double click into the cell, paste the formula, then save it by pressing CTRL+SHIFT+ENTER. You can then fill it down as far as you need to go.
=IFERROR(INDEX(Table1[Type],SMALL(IF(Table1[Employee ID]=A2,ROW(Table1[Employee ID])-ROW(Table1[[#Headers],[Employee ID]])),COUNTIF($A$2:A2,A2))),"Not that many")

SUMIFS across a range of sheets

I'm building an excel home finances/budget workbook. I would like to keep the transactions for each account on separate sheets with my budget sheet separate from those. I was looking for a way to sum the categories without hard-coding the names of the sheets used. I setup the sheets as follows.
Budget - Start - Account1 - Account2 - End
I have more accounts to add once i get it working. This is all prototyping to make sure I can do what I want.
I found I can do the following to sum everything on all sheets between Start and End (as long as those are blank).
=SUM(Start:End!B1:B10)
What I can't get working is a SUMIFS
=SUMIFS(Start:End!B1:B10,Start:End!A1:A10,"Count")
In column A a cell that has "Count" or "Don't". These will eventually become categories. The above gives me a "#VALUE" error. I wasn't able to get SUMIF to work either. I may add other conditions down the road.
Am I doing something wrong? Is there an easy way to do something like this?
I got it to work by making a Range E2:E4 containing the names of the sheets, the first being "Start" and the last being "End".
I also have a criteria box E7 with value "Count"
Start
I've populated columns A1:A10 with either "Count" or "Don't".
I've populated columns B1:B10 with numbers.
Sheet2(left) and End(right)
Then I used this formula to return the desired result:
=SUMPRODUCT(SUMIF(INDIRECT("'"&E2:E4&"'!A1:A10"),E7,INDIRECT("'"&E2:E4&"'!B1:B10")))
Don't know if that helps you but it does produce the desired results with the extra work of writing up a sheet list and a criteria list.

Use VLOOKUP but detach the value from the lookup once it is in the cell/looked up

I have the following:
1 Access file with a big list of items that people can order.
1 Excel file with 2 tabs.
In the 2nd tab of the Excel file I import the Access table.
For each row I have a dropdown list in the first column with the values of the first column of the access table.
In the 2nd column of the first tab I use VLOOKUP to show the price linked to the item of the first column.
In the 3rd column of the first tab the user can fill in an amount.
Here's the catch:
in the 4th column of the first Excel Tab I want to show a total so B * C. Nothing hard about that. But I want this value to NEVER CHANGE.
So even if the Access database is updated I do not want the value of the already calculated cells of column 4 to change.
I know it seems pretty unlogical but I really need this.
Any suggestions? Is there a formula that I am missing?
EDIT from post:
The file is to be used be other people than myself. If paste special can be done automatically as in like a formula it would help but that doens't exist or I haven't found it.
Thanks in advance.
If the formula is linked to a connection (e.g. OLAP cube, a table that is linked to an Access table) then remove the connection before sending the sheet out. See link.
If you distribute the workbooks to people who do not have access to the data itself (not on your network) the issue will solve itself, take away that some dummies will complain about their data disappearing not refreshing.
The formula you're asking for would refer to itself once it has a value, confer circular reference.
If used by your close enivronment you might want to have a VBA snipplet insert your formula and then do the PasteSpecial method automatically (you'll have to enable macros on each of the computers involved in this case).

Resources