I now have everything set up to do exactly what I want except this last bit.
All I want is for the overview page to show the top three referrers for each month. At the moment, it's finding the top and bottom 'scorer' but if more than one has the same score I can only see the first alphabetically.
I understand how to find the top 5 /bottom 5 values using the large/small functions, but the question I have is: How do I get associated fields. For example I attached a sample sheet with values (Fields: Ticker,TE,Sector,Return). How do I get the Ticker,Sector that the return is for. I'd like to show all the associated fields that relate to the retun, but I can't find the solution on how to do that.
Basically, I am trying to write a program that will index match through a range and if it doesn't find the value that it is matching to, it will add the value to the bottom of the range it is indexing against. In other words:
My C column has a list of CUSIPS. In column J, I would like for the User to be able to add a list of cusips and then have the ones that don't already exist in the list of CUSIPS in column C be added at the bottom of the range. I have written a macro now that uses the index match, but for some reason it adds all of the cusips that exist in J range to column C, not just the ones that are missing. I can provide a template if necessary.
Sub Filler() Dim Row As Variant Dim NumberOfRows As Long Row = 0
I copy information from one worksheet to another. Now i specify the range to copy in the macro. What i need is for the macro to find the end (last row) of data and than copy everything from row 5 to last row.
The below is a macro i currently use:
Sub Import_FNGC() Const TARGET_FILENAME = "2008.xls" ' ' import_FNGC Macro ' Macro recorded 1/30/2008 by wwrobel '
' myMSG = "This will clear the data and import information. Do you want to continue?" Response = MsgBox(myMSG, vbExclamation + vbYesNo, myTitle) Select Case Response Case Is = vbYes Range("A5:BM100").Select............
Chart Building With Ranked Data. I have adapted the offset formula for my spreadsheet, but what to do if 2 values tie. I need the top 10 values to populate my chart, but if there are two values which rank joint first place, the formula only extracts the first value. Is there any way I can get round this?
I am creating a Power Poll Spreadsheet for a Fantasy Football League, and I need to create a code that will take the win/loss columns and in a new column assign rankings so that the team with the most wins gets ranked '1st', then '2nd' etc. I'd like it to, in the case of a tie, rank both teams equally 'the 3rd and 4th best teams both have identical records, so both get ranked '3rd' and the '4th' ranking gets skipped.
I have searched for a formula to allow this, and I can't find it. Can anyone help? As an aside, is anyone aware of a place I can find a listing of formulas that can be used in sports ranking, etc?
I have a piece of code which, amongst other things, searches column A of one sheet for certain values and then pastes relevant data to a different sheet.
A lot of the data is fixed in relation to the entry in column A e.g. the 'Open Date' is always 8 rows down and 1 row across from the value I search for. These pieces of data easy to transfer to the other sheet.
However, one piece of data could be anywhere within a 10 row, 4 column region offset from the value in column A i.e. if column A is on row 12, then the data I am looking for could be anywhere in the range B20:E30.
Referencing the spreadsheet below, I'd appreciate some help with a macro that finds the last row of data in a spreadsheet, and fills in all the data from cell C22 through H23. There are many spreadsheets like this one in my workbook. The last line of data is usually at a different line for each spreadsheet....
I tend to use a lot of For Each loops when I want to go through a range looking for something but this time I'm not so sure it will work.
I have 9 databases each containing over 400 rows with different pieces of client information, these databases are shared between around 40 people (I've also used the 'Allow users to edit ranges' utility to restrict access). What this means however is that the users cannot delete an entire row, instead they can only 'clear contents' on individual cells. This is fine until I try to generate statistics from the databases using autofilters which stop at the first blank row.
So I need to write a backwards for each statement that starts at the bottom and deletes all the blank rows on the way up to the top. I've tried similar things to this before using the For Each but when you use it to delete a row it sometimes skips the next row as it continues at the next one.
I've not managed to get it to work before, I'm just looking for a little guidance really as to how to do this correctly.
VB: For TopRow = 1 To BottomRow = Range("A1").SpecialCells(xlCellTypeLastCell).Row Step -1 'If is blank delete row..... Next
How can I determine what the bottom row is in a range in VBA? I have an SheetChange event sub that takes in Target as Range. I want to know what the first/last row/column is in the Range. So, for example, say the Sheet has values in A1:B5 and I paste over A1:B4. Target will be A1:B4. I need a method that returns 4. I tried Target.End(xldown).row, but that gives me 5 (since theres data in A5).
I've recorded a macro that selects a bunch of cells so I can work with them. However, it's hard-coded to the bottom cell of H1551, and I need it to work no matter how large the range is.
Code: ''' Concatenate column H with B & F Application.Goto Reference:="R2C8" ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-6],"" "",RC[-2])"
I'm looking for a formula that would tell me if a value in colume E can be found in column M while the values in column M may have characters before and after the value I'm looking for. The values are alpha and numberic in many cases.
Find E2 in M:M where E2 = 0123 and is in M:M as a15012388. The "yes/no" result is marked in red where I would like to have the answer.
I'm working with reports where I am given a list of used RFID tags which contain 13 alpha-numeric characters, and need to compare it against another list, in order to determine if any are matching. I'd like to be able to loop through one column of values to compare against the other, but unfortunately my VBA skills aren't that great..
I have a list of players and the team they play for in Columns A and B.
In column E I have created a list of only unique names and in F I need the Team the played for last. However with Vlookup I am only getting the team they played for first. How can I get the team they played for last?
I have tried vlookup and index/match and get the same.
I have a workbook with three sheets containing patient information from a clinic. Each sheet pertains to a different year. The sheets are formatted such that every row of each sheet contains a patient ID number in column A; in the same row, following the patient ID, is data pertaining to that patient, part of which stays the same (intake data)[=values in columns B:O] and part of which changes (encounter data)[=columns P:AA].
My challenge in cleaning and merging this dataset is that the ID numbers may not be trustworthy: I need a way to validate that there are no patient records [=rows] such that a given row has the same set of identifying information (OpenRecord Date, Sex, Age, History, etc.) located in columns B through O but a different ID number (column A) in a different sheet. In other words, I need to make sure the same patient isn't masquerading by a different ID number across different years [=worksheets]. What I am trying to do is develop a macro or formula that compares each row's range of values for B:O to every other row across each of the three worksheets; then find and list only matches for B:O that do not have the same value in Col A.
Complicating this operation are two considerations: 1) Each sheet in the workbook (excerpt attached) contains about 40,000 rows. 2) DOB is missing; instead, we have "Age." For those patients which appear in all three years captured in the three sheets, the "Age" value (column F) increases by +1 year.
A link to an example file on Google Drive : [URL] ....
I would like to be able to replace all cell values in a range of 20c by 20r (i.e. 400 cells). In all cases the condition would be the same (find all cells with a value greater than than zero), but then replace with different values.
e.g. Cells with value >0 in range CX119:DQ138 replace with "NT", then cells with value of >0 in range DR119:EK138 replace with "NU"
I thought you could do it with find and replace by just selecting that range of cells but can't see how to set the conditional >0 bit.
The following code is doing what I want it to do in part, its copying the data in range k3 to q3 to the next empty row in columns a to f
It works when I change any cell in column K (11), I want to change to only on a change in K7 or K8? As an afterthought if I'm dealing with the same sheet do I need to make reference to sheet2?
VB: Private Sub Worksheet_Change(ByVal Target As Range) Dim nextRow As Long If Target.Column = 11 And Target.Cells.Count = 1 Then
Data consists of a series of ranges from columns A:N and rows varying in number between 3 and 30.
There are two blank lines between each range of data.
Each range is (with exception) numerically ordered down column H (e.g, 1, 2, 3, etc).
Problem: there are around 1100 occasions when a range contains a row of data which is to be disqualified from consideration. On these occasions the data always appears in the top row of the range and is identifiable in column H by the nine codes 111, 222, 333, 444, 555, 666, 777, 888, and 999).
I wish to find a macro which will :
1. where the top row of a range in column H is one of the codes 111 to 999, transfer that row of data to the bottom of the range.
2. delete the now empty top row from which the transfer was made from.
3. insert a new blank row at the bottom of the range below the row which the data was transferred to (in order to maintain the two blank rows above and below each range).
I was wondering if there was a way to create a two cell dynamic range that doesn't expand, but instead shifts.
The cells that I'm interested in are always at the bottom of the column of data. For example, the first two cells I want as my range are C13 and D13. Then, for my next use of the range, I would like it to include C14 and D14.
I have a spreadsheet which is going to be populated everyday from figures from another spreadsheet using autofilters and the very useful SubTotal worksheet function. I'll attach a copy of the work in progress, also there will be a macro in here which Everytime the user presses update, it copies a range of cells and formatting and pastes it to the next available cell on the right. I've also drawn the movement of the cells i'd like The reason being, is that its going to give day to day, up to date figures from a datasheet.
The problem i have is that when i come to populate the grid which has been copied, i need a calculations to populate each cell in the Less<1week column, then when it gets to the bottom, move Back to the top, and accross to the right 1, and then populate down again, and so on until the end of the grid in question, i dont think i can use a for/next loop becuase it will be a different column address everytime. I dont really like loops, but i feel this needs it.
I know the formula =large but my problem is the formula for the equivalent value for it. Note: In my xcel file attached you can see there are multiple items with the same total numbers and also blanks
I'm trying to create a spreadsheet to update daily, whenever our market intelligence arrives by email. I'm not trying to write a macro which can select a range of cells (G:L) relative to the date in Column B, which represents the value in cell P6. In other words:Read the value of cell P6 Find that value in column B (e.g. B646)highlight the cells in columns G through to L on that row (e.g. select G646:L646) I am then aiming to paste the values in that range of cells, so that those stay in the spreadsheet and are not lost when the next lot of figures comes in the following day.
I have Excel 2013. I would like to use the code below but I need it to let me select the range instead of specifying it in the code, then pop up a form into which I can fill in what I want it to search and what I need it replaced with.
I have four named ranges (Segment, Keyword, Impressions and Dropdown) and I would like to create a formula-based ranking of keywords by impressions and clicks. Using the following array formula, I am able to return the correct values for impressions or clicks:
{=LARGE(IF(Segment=DropDown,Impressions),$H7)} where $H7 is the number ranking 1, 2, 3 etc.
My question is what array formula could be used to find which row in the array returned that number and then pulls the data from the same row in the other named ranges?
Essentially find row of {=LARGE(IF(Segment=DropDown,Impressions),$H7)} but return Keyword and Clicks on that row.
Other Notes: I cannot use pivot tables and some values might be the same which would make Vlookups not accurate for duplicate values.
Link to an example document to clarify this. [URL] .......
In my workbook I have two tabs, the first tab is intended to call on data located on the second tab so I can evaluate & Display it in different ways. Here's what's worked so far. Where I'm stuck is attempts to try and combine the two.
- the second tab is named AW_Items_Import
Examples:
1) Looking on the second tab to count the number of times a object (identified on the first tab in Cell B13) appears =COUNTIF(AW_Items_Import!J:J,B13)
2) Looking on the second tab for items that fall within a set value range, the ranges specified on the first tab in cells C14 and E14
What I want to do, is combine 1) and 2) so I can isolate a search to a name specified on the first tab, THEN count the number of times that item falls within a set range, the range also specified on the first tab.
I've attached a workbook which contains two sheets: PAYM DEVICE_PAYM
Data is updated on DEVICE_PAYM each day with the figures I need located in column "AN". I need to be able to copy the data from "AN" and paste it into a column on the PAYM sheet. The destination column on the PAYM sheet needs to be specified by inputting a specific date - ideally, I would like to use the calendar Add-In as part of this process. I've already input some code for the calendar but am unable to develop this further so that it finds the correct date column and pastes the data across from the other sheet.