Use OFFSET Formula Over Range Of Cells?
Mar 29, 2013
I have a table that is 10 columns wide. On a separate worksheet I want to display the last 10 rows of the table - 100 cells in all.
Getting the value of one of the cells is easy enough - I used:
=OFFSET(DataTableFirstCell,COUNTA(Sheet2!$A:$A)-1,0)
If I copy/paste, or drag the fill handle to expand the target range I end up with the same formula and same value in all 100 target cells. I know I can edit each cell to modify the offset -1,-1, then -1,-2 then -1,-3 etc but that's mind-numbingly tedious and likely to introduce error.
There must be a way to have a cell reference another, then copy the formula to adjacent cells and and have the result show the content of cells adjacent to the original source.
I've been trying INDIRECT and INDEX with ROW and COLUMN - but I can't work it out.
View 9 Replies
ADVERTISEMENT
Feb 7, 2013
How do I offset a range of cells?
I'm running simulations. Let's say I want to run the "for" loop 100 times. In the 1st iteration I want to copy Range(A1:A10) and paste the value to A31:A40 (this destination range is fixed for each iteration). In the 2nd iteration I want to copy Range(B1:B10) and paste to (or assign value to) A31:A40. In the 3rd iteration I want to copy Range(C1:C10) and paste to (or assign value to) A31:A40. And so on for 100 iteration. So each time my copied range moves one column to the right.
How do I achieve this in VBA code? Let's say I have defined/named Range("A1") and want to keep offsetting to the right but copying 10 cells in the range as I go along.
View 6 Replies
View Related
Feb 13, 2007
i need to get an equation correct for a scheduling application
assume $f24 is a task frequency and U24 is our current cell location
=IF(OFFSET(U24,0,(-$F24+1),1,($F24-1))"","","X")
i am asking if (the range of cells to the left of current cells (range being task frequency -1 columns wide) are empty - and if so - put an x - if they are not empty - then leave it balnk.
i can get it to to work for a 2 weekly schdule but need it to work upto 52 weeks
i have a simple spreadsheet with the problem clearly defined for anyone who can help
- beer in it for anyone who can help - or can pay via paypal if required
View 9 Replies
View Related
Jul 14, 2012
I have as the two logical operators for an IF function the following COUNTA calculation which checks how many blanks are in the range GrdMtx7 and subtracts this from the value in E5 and adds the suffix "Module(s)".
Code:
(E5-COUNTA(GrdMtx7)-1)&" Module(s)",(E5-COUNTA(GrdMtx7)&" Module(s)")))
GrdMtx7 is a non-contiguous range consisting of the following cell references on a second sheet:
Code:
='Mod Schedule'!$E$7,'Mod Schedule'!$H$7,'Mod Schedule'!$K$7,'Mod Schedule'!$N$7,'Mod Schedule'!$Q$7,'Mod Schedule'!$T$7,'Mod Schedule'!$W$7,'Mod Schedule'!$Z$7,'Mod Schedule'!$AC$7,'Mod Schedule'!$AC$7,'Mod Schedule'!$AF$7,'Mod Schedule'!$AI$7,'Mod Schedule'!$AL$7,'Mod Schedule'!$AO$7,'Mod Schedule'!$AR$7,'Mod Schedule'!$AU$7,'Mod Schedule'!$AX$7
I need for the formula of the IF function to copy down so that it refers to F5, G5, H5, I5...etc.
I also need for the non-contiguous named range GrdMtx7 to refer to the same non-contiguous range shifted down one row intact for the COUNTA function to operate on the next row down, such that COUNTA is checking for blanks in the range:
Code:
='Mod Schedule'!$E$8,'Mod Schedule'!$H$8,'Mod Schedule'!$K$8,'Mod Schedule'!$N$8,'Mod Schedule'!$Q$8,'Mod Schedule'!$T$8,'Mod Schedule'!$W$8,'Mod Schedule'!$Z$8,'Mod Schedule'!$AC$8,'Mod Schedule'!$AC$8,'Mod Schedule'!$AF$8,'Mod Schedule'!$AI$8,'Mod Schedule'!$AL$8,'Mod Schedule'!$AO$8,'Mod Schedule'!$AR$8,'Mod Schedule'!$AU$8,'Mod Schedule'!$AX$8
I can't get got to work at all using OFFSET and would rather not create dozens or hundreds of named ranges incrementing one at a time - is there a way to achieve this, preferably with a formula, but vba if absolutely necessary.
My best effort doesn't work:
Code:
(E6-COUNTA(OFFSET(GrdMtx7,1,))-1)&" Module(s)",(E6-COUNTA(OFFSET(GrdMtx7,1,)))&" Module(s)")
View 2 Replies
View Related
Dec 17, 2013
I have some data A2:A1000 where there is a start date in column D and end date in column E (formatted DDMMMYYYY). In column F I have a formula that calculates the NETWORKDAYS between the dates.
What I want is a set of formulae that will look in column D for a date between 01/01/2013 and 31/01/2013 (or any date I specify) and find the 'MIN', 'MAX' and 'AVG' of the values in column F where the date in column D matches my criteria.
What I can't figure out is how to offset from the cells matching the date range!?
View 1 Replies
View Related
Oct 16, 2006
Sub TestSearch()
Dim FoundCell As Range
Dim SearchString As Variant
'Specify Value to Search
SearchString = " Excel"
'Perform the Search and Return a Cell Value
Set FoundCell = Worksheets("Source").Range("A1:A10000").Find(" Excel", lookat:=xlPart)
If Not FoundCell Is Nothing Then
MsgBox "Found at " & FoundCell.Address
End If
End Sub
I'd like to take the code above, which returns a cell address which contains the text " Excel" and modify or add to it the capability to copy a range starting from the address returned and ending 102 cells further down in Column A on the Source sheet to A1 of the Sheet1 sheet. The crux of the problem seems to be converting the address to a row number then adding the value of the number of cells in the range to find the end row number then converting that back to an address??
View 5 Replies
View Related
May 23, 2012
What can I add to the macro I already have in place (below) to accomplish what I'm looking for (2 parts)? ...
1) I need to copy everything (formulas) that is in C7:F7 and paste it down to all "active" rows - I'm defining an active row by any row where column A is not blank.
2) I need to copy everything (formulas) that is in Q7:AF7 and paste it down to all "active" rows - I'm defining an active row by any row where column P is not blank. (You'll notice by the screenshot that there will be blank cells in column P mixed in with non-blank cells.)
Code:
Sub AdminTool()
'
' CreateAdminTool Macro
'
'
ActiveWindow.Zoom = 90
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
[Code] ...........
View 7 Replies
View Related
Jul 16, 2014
I have a sheet that a VLOOKUP is looking at, and what I need is, if that VLOOKUP finds what it is looking for I need it to look at the cell 2 cells to the left, how is that done?
I am thinking something like:
Formula:
[Code] ......
I just don't know the offset part.
View 3 Replies
View Related
Mar 17, 2014
I have a row data corresponding to the measuring of load cell per min and I need to average the values per hour. So I have a column B for the date (from 1-01-2013 to 31-01-2013, column C for the time (0:00:00 to 23:59:00), and D de values per min I want to average. I have to do the same for the rest of the month of 2013 (February, ...., December).
I would like to know if there is a way to create a formula to calculate the average of the first 60 values (to get the average of the first hour of 1-01-2013), and then copy it to get the average of the following 60 (average of the second hour in 1-01-2013) and so on.
If there is no way to do it, I would like to know if I can do it using functions like average, match, index, offset, what would be the best match of those functions.
I also tried it by doing the analysis in another tab and using the function "averageifs" with two criterias: one for the date (example 01-01-2013) and another one for the hour (example 0:00:00), but it didnt work, it show error: #value. I inserted an extra column in the data tab with just the hour (example 0:00:00) in front of the corresponding column with (example 0:01:00, 00:02:00, etc)
Equation I used for this:
=AVERAGEIFS('Data (min)'!D$6:D$43206,'Data (min)'!$A$6:$A$44646,A6,'Data (min)'!$B$6:$B$44646,B6)
=AVERAGEIFS(TAB AND COLUMN WHERE THE RAW DATA IS,RANGE OF CRITERIA 1,CRITERIA 1,RANGE CRITERIA 2,CRITERIA 2)
View 2 Replies
View Related
Feb 8, 2010
I have attached a sample of the spreadsheet. The cell/cells in question are f32:f36 on the first tab.
Question #1 how this formula works or what it does.
Question #2 Is when I enter the required information in cells a32:e32 it enters an N/A in cell f32. When I than click on cell F32 and than click on the formula bar and hit enter the information populates.
View 2 Replies
View Related
May 16, 2009
I am having trouble with one line of this code that I can't figure out how to write correctly. I have set the range, but I need to offset by 10 rows up. My code fails at set rng.
View 6 Replies
View Related
Sep 29, 2009
I have an offset range ("TheCell") that does not seem be working how I would expect.
I don't know if its because the sheet I am working on was originaly German but I would be surprised if that was the case.
I Use sheet change to set the peramiters of the range and to test the value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rowcell
Dim colcell
Dim typeit
colcell = ActiveCell.Column
rowcell = ActiveCell.Row
ActiveWorkbook.Names.Add Name:="iname", RefersToR1C1:="=" & "Tabelle2!R1C" & colcell
ActiveWorkbook.Names.Add Name:="Jname", RefersToR1C1:="=" & "Tabelle2!R" & rowcell & "C2"
typeit = Range("TheCell").Value
MsgBox typeit
End Sub
=OFFSET(Tabelle1!$B$4,MATCH(Jname,Tabelle1!$B$5:$B$57,0),MATCH(iname,Tabelle1!$B$4:$EX$4,0)-1)
but for some reason I am getting a runtime error 1004 worksheet failed.
I have used this technique before and its been fine so what mistake have I made :o)
View 9 Replies
View Related
Aug 24, 2006
I want to apply some logic to a range. However I want to offset the bottom of the range by 1 row.
Example: I have a range (B8:I19) already defined in my vba code. But I want to shade range (B8:I20).
MyRange = Range("B8:B19")
MyRange.Offset(1, 0).Interior.ColorIndex=3
This code also offsets the top of the range (row 9), which I don't want.
How can I only offest the bottom of the range?
View 5 Replies
View Related
Aug 29, 2008
I would like to work with a range of cells.
I have a headerCel (A2)and a footerCel (A20).
If I use the line
View 9 Replies
View Related
Dec 8, 2008
I am currently writing some VBA code to loop through and copy data from Excel file in sub folders into a master sheet of data. There are some 1200 Excel files (these are pre-2007 files), each containing a maximum of 600 lines of data. So far the code works until it gets to around 65000 rows (the old Excel limit). I am using and writing the code in a Macro-Enabled Excel 2007 file.
I am using a Range.Offset call, which is where the error is occurring, to copy in a name basically. What happened right before this was a Range.Copy operation from the old Excel file to a Range.PastSpecial in the new one. This worked fine, and actually went a few hundred rows past the pre-Excel 2007 limit. But when the single cell operation Range.Offset().Value is called next, it crashes with a Application or User-Defined error. The code works some 100+ times through the loop with no problem, and the file that it was working on is no different then the other files.
View 9 Replies
View Related
Jan 28, 2009
I am trying to create a macro that goes down Column A of my sheet and looks for a string, "Number". When it finds it, it resize (0, 14) and cuts. Then it pastes the array at an offset of (-1, 10) This is what I got so far:
View 4 Replies
View Related
Mar 10, 2009
I'm trying to copy a range, specified by an offset, then PasteSpecial that range to yet another location specified by an offset.
This is the code I have so far, which does not attempt to find the range to copy via an offset.
View 5 Replies
View Related
Oct 11, 2011
How do I activate four cells to the right of A5 using the offset function. I will need this to operate indivitually for each row so I cant use Range("B5:E5").Select. All I want to do is to merge the four cells to the right of column A
View 6 Replies
View Related
Jun 15, 2006
= OFFSET(CustomerInfo!$A$9,0,0, COUNTA(CustomerInfo!A:A),1)
for a "dynamic" range name...i like the concept, but my data validation in a cell that references this "dynamic" range name (with the offset function) doesn't recognize all the values in the range
(when i just range name it, the data validation sees all the names, but not all when i use the offset...)
View 5 Replies
View Related
Jan 3, 2008
given a range named xyz which refers to d1:e3
range("xyz")
where the 3rd row is blank. I want to examine the row after the range with
range("xyz").end(xlUp).Offset(1,0).Cells(1,1).value
I find that this code refers to the last row of the range which is blank. How can I be sure that I will be 1 row (offset=1) below the range?
View 2 Replies
View Related
Jun 7, 2009
I am trying to create a formula to determine if my students made a point in high standers, which means if they got a level 3 and about in 2009 verse the student's 2008. Now if they stayed on the same level did they make learning gains. So what I need to do is look at the grade level of the student (Colum C), then 2009 Math Developmental Score (Colum J), and Finally 2008 Math Developmental Score (Colum M). So if the student scored a level 2 in 2008 and a level 3 in 2009 he gets a point, but if he stayed on the same level. The formula needs to look see if he made learning gains. So if the student is in grade 4 and was a level 3 in 2008 and 2009 he would need to score 163 points higher in order to get a point. I have created a helper table with the information need to calculate the information. I have been working on this for about a week I can’t seem to get it right.
View 3 Replies
View Related
Apr 19, 2007
I am using the following code to sum a range of cells in a column and compare the result to another column, bolding that column if the two values are not equal. This works, but I am sure someone can offer me a far more elegant (and perhaps faster?) solution.
Dim rngRange As Range
Dim c As Range
Set rngRange = ActiveSheet.Range("F22:F522")
For Each c In rngRange
If c.Value c.Offset(0, 1) + c.Offset(0, 2) + c.Offset(0, 3) + c.Offset(0, 4) + c.Offset(0, 5) + c.Offset(0, 6) + c.Offset(0, 7) + c.Offset(0, 8) + c.Offset(0, 9) + c.Offset(0, 10) Then
c.Font.Bold = True
Else
c.Font.Bold = False
End If
Next c
View 9 Replies
View Related
Jun 20, 2007
I saw a formula on another website that shows calculating a YTD formula using the offset function. The address is:
http://www.beyondtechnology.com/tips010.shtml
I was working on a version where you enter the months in row 1, number data in row 2, and have the month to use in the formula in cell N2 but it did not work. Any suggestions on how to do it properly? Here is my formula:
=SUM(OFFSET(A2,0,0,1,MONTH(N2())))
View 9 Replies
View Related
Jun 20, 2006
I have this formula (part of a block covering 4 columns) in cell D12.
D11*AVERAGE(DATA_2006!$A$14:DATA_2006!A14)
Every month this bock of information has to be copied across 4 columns i.e.
D:G is copied to H:K then H:K to L:O and so on.
When I do this the calculation needs to change as follows -
Month 1 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!B14)
Month 2 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!C14)
Month 3 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!D14)
Because I am copying across 4 columns this happens
Month 1 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!F14)
Month 2 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!J14)
Month 3 D11*AVERAGE(DATA_2006!$A$14:DATA_2006!N14)
View 9 Replies
View Related
Apr 3, 2007
I have named a range to find the last cell in a column . I then want to build a table which picks this cell and the cells to the right and above (its for a 6 month rolling table).
Ive attached spreasdsheet so i hope someone has a clue what im trying to do.
View 4 Replies
View Related
Jul 23, 2014
I know how to create a dynamic named range so that no blanks appear in my data validation list but have only ever done this for a list in a column, i.e...
-----A-----
1--Apple
2--Orange
3--Pear
4--Bannana
5--
6--
A1:A6 would be named Fruit, then name manager, edit: =OFFSET($A$1,0,0,COUNT($A1:$A6),1)
The Data Validation list then shows Apple, Orange, Pear, Bannana. And if I add Peach into A5 later, that then appears in the list.
What I need though is to edit this as if the named range 'Fruit' covers cells A1:F1.
------A---------B-------C--------D-----------E-----------F
1--Apple---Orange---Pear---Bannana---
2--
View 7 Replies
View Related
Dec 18, 2008
I am designing a form that tracks call times. I have a control "cmdStart" that when clicked will enter the "Start" time in cell A4 and each time clicked will skip a column and enter the next time in cell C4. The same for a control "cmdEnd" that will enter the "End" time in cell B4 when clicked. Then the next end time clicked will go in cell D4. However, when the Start time enters the time in AE4 I need the next start time to start in A6 and do the same in this row until AE6 and then drop down again. The same with the "End" time when it reaches AF6. I think I could write the If and Else for each individual cell, but there must be a more efficient way to do this.
View 4 Replies
View Related
Feb 2, 2009
I am using the following macro to format a sheet - I recently added a auto-fill part to it which essentially moves a number from one column to another and autofills it in all the cells until it encounters another number of the same kind in the column it moved the previous number from.
When I try to run this macro it does everything upto the auto-fill part and then gives me error 1004 [the set cell = cell.offset(1,0) ] is highlighted in yellow.
View 4 Replies
View Related
Dec 3, 2008
I have a data set that alters each week which means at the moment I have to update the ranges manually each time. I would like to use a dynamic range and think I need to use the Offset and CountIf functions. Both the start and end of the ranges are dynamic. The range is based on grouping the numbers in Column E (LocNo)
What I would like to do or think the way to achieve this is by:
First looking at Column E
Count how many cells are equal to criteria. (CountIf)
offset 5 columns left from the first cell that meets the criteria (Offset -5)
offset X rows down based on how many cells meet the criteria (Offset X)
I've include a spreadsheet spread sheet which 'should' help illustrate the problem showing the ranges I would like and how the data changes each week.
View 5 Replies
View Related
Nov 12, 2011
I have data coming into my sheet from an Access file into columns b:l which automatically get covered by a named range which changes according to the size of the data coming in.
What I'd like to create is a named range which includes this original range as well as columns a and m:p. Is this possible using Offset at all?
On top of this my data from Access comes into row 2 and I'd like the named range to cover row 1 too.
View 3 Replies
View Related