Convert Array Formula To Macro
Oct 31, 2006
The attached has a mega array formula that really slows down the recalc on this spreadsheet. I would like to use a macro to write the value of the formula to the worksheet "Database" column J.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Not Intersect(Target, Range(Range("rReason").Offset(1, 0), Range("rReason"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = Application.VLookup(Target, ValList.Range("ReasonLkUp"), 2, False)
'This formula below needs a VBA equivalent
' Target.Offset(0, 4).FormulaArray = "=IF(MIN(IF(R7C3:R35000C3=RC[-7],IF(R7C8:R35000C8>0,R7C8:R35000C8)))=RC[-2],MIN(IF(R7C3:R35000C3=RC[-7],IF(R7C8:R35000C8>0,R7C8:R35000C8))),0)"
End If
If Not Intersect(Target, Range(Range("rSurname").Offset(1, 0), Range("rSurname"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = ActiveCell.Offset(0, -2) & " " & ActiveCell.Offset(0, -1)
End If
End Sub
View 9 Replies
ADVERTISEMENT
Jun 21, 2014
wondering is there a VBA equivalent of --() in excel that turns trues and falses to 1's and 0's?
View 14 Replies
View Related
Apr 20, 2009
I am using the following Control Shift Enter (CSE) formula to find a value.
View 4 Replies
View Related
Mar 2, 2008
convert the formula into macro
I hv formula as following :-
=Left(B2, Find(" ", B2, 1) - 1)
I likt to convert into macro,
ActiveCell.FormulaR1C1=_ "=Left(B2, Find(" ", B2, 1) - 1)"
But it cannot work
View 9 Replies
View Related
Oct 31, 2006
The attached has a sumproduct formula that is slow down the calculation of my workbook. (I know there is also an array formula-that's another thread). I'd like to use a macro to fire on the worksheet change so I don't have the heavy recalc burden. The formula is in worksheet "Database" in column H. So far:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Not Intersect(Target, Range(Range("rReason").Offset(1, 0), Range("rReason"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = Application.VLookup(Target, ValList.Range("ReasonLkUp"), 2, False)
'This formula below needs a VBA equivalent
' Target.Offset(0, 2).FormulaR1C1 = "=IF(RC[-1]>0,SUMPRODUCT(-(R7C7:R35000C7<0)*0.5,--(R7C3:R35000C3=RC[-5]))+SUMPRODUCT(--(R7C7:RC7>0),--(R7C3:RC3=RC[-5]),R7C7:RC7),0)"
End If
If Not Intersect(Target, Range(Range("rSurname").Offset(1, 0), Range("rSurname"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = ActiveCell.Offset(0, -2) & " " & ActiveCell.Offset(0, -1)
End If
End Sub
View 5 Replies
View Related
Nov 16, 2006
Can anyone create a vba macro with the condition mentioned below
=If(Or(( COUNTIF(F2,"*Error*")>0),(LEN(F2)<4), (COUNTIF(F2,"*html*")>0)),"Fail","Pass")
I tried to do but of no use.
View 9 Replies
View Related
Nov 24, 2006
I have
1) A worksheet ( named PC OD) with one 80X80 matrix (matrix1)
2) another worksheet (named worksheet2) where I have 2 80X80 matrices (matrix 2 and matrix 3) and the below mentioned formulae
Matrix 2 grabs data off Matrix 1 (cell 'PC OD'!B769 belongs to matrix 1, in sheet PC OD) to round off the values in each of the 80X80 cells : ...
View 9 Replies
View Related
Jun 7, 2006
I'm trying to have a macro write down an array formula, but when I hit ctrl+shift+enter, the recorder says it can't record. If I write in the macro ...FormulaR1C1 = {=...} then I get the formula as a text. Is there a way to tell the macro that a formula should be entered as an array formula?
View 2 Replies
View Related
Oct 13, 2006
Have a macro that copies a formula from each of 100 workbooks to a new workbook. I want to display these formulas as text and want a macro or someway to display these cells as text. I have tried to record a macro that presses the F2 key, the home key and the apostrophe. This works for the one cell but provides the following macro that does not work for anyother cell.
ActiveCell.FormulaR1C1 = _
"'=VLOOKUP($A$30,'G:Variance Reports FY07[Salary Dist Var Repts_Cur Mth.xls]end of July'!$E$76:$G$200,3)"
Range("B3").Select
View 2 Replies
View Related
Jul 28, 2009
I received assistance from NBVC for combining data from two cells. Post http://www.excelforum.com/showthread.php?p=2135144. I need to convert the formula into macro code. I thought I would be able to convert it on my own, but running into some troubles with run time errors. Here is the Excel formula, which is working fine.
View 5 Replies
View Related
Nov 10, 2011
I often have to research long sheets of data, which requires filling data in on my research sheet from several different sources. The research sheet has a file # in A and a vendor # in C. The data sources have the file #s & vendor #s in varying columns, but I use a pivot table to end up with file # in A, vendor # in B and the needed data in C.
The length of the research sheet varies from month to month - often 800-900 rows, so you can imagine how tedious it is to find the correct file #/vendor # combination to plug the data in. (Many of the rows on the research sheet will not have a row on the data source sheet.)
I managed to get an array formula in one of the columns on the research sheet that actually DOES work:
Code:
{=INDEX('Acct Activity'!C$1:C$7,MATCH(A7&C7,'Acct Activity'!A$1:A$7&'Acct Activity'!B$1:B$7,0))}
But the problem is that it returns #N/A in any row that doesn't have any data. This messes up the sum formula in the farthest right column. So, I tried to incorporate an ISERROR in with the formula, but couldn't get it to work; it left all the cells blank.
In the meantime, I got to thinking that, since there are up to 3 columns requiring data on the research sheet & each column's data comes from a different source, wouldn't it be great to have a macro where I could use a couple of Input Boxes: 1 that would let me click on the column where the data NEEDS to go & 1 that would let me tell it (either by typing the worksheet name or by clicking on the worksheet " PREFERRED " where the data come from)!
So, I spent the entire day yesterday trying to make any of that work & can NOT figure it out! I got the macro to pop up the first input box, & can key in the column letter, but clicking OK doesn't do anything. Yesterday, I had it so I could click OK & the box would go away, but nothing else happened & the second box wouldn't work right.
THEN, I started trying to figure out how to do an array formula in a macro & my head nearly exploded! I have a terrible time trying to understand written descriptions if they're in "tech speak", so it was all greek to me.
Here is all the farther I got with the macro:
Code:
Sub ClearingRsch()
' Jenny 10092011
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
.DisplayAlerts = False
[Code] ......
View 9 Replies
View Related
Sep 26, 2008
I have a data array which i would like to convert to a list. Sort of the reverse of a Pivot Table
See example below
I would like to turn this
Account Jan Feb Mar April etc..
001 59 30 25 40
002 12 20 32 29
003 5 13 27 39
004 10 11 12 13
Into This
Account Month Amount
001 Jan 59
001 Feb 30
001 Mar 25
001 April 40
002 Jan 12
002 Feb 20
002 Mar 32
002 April 29
003 etc...
There is a sample of the data file attached.
View 3 Replies
View Related
May 9, 2008
I have a list of code that it has been suggested to me will work a lot more efficiently by using an Array.
Sub Auto_Open()
Sheet1.ComboBox1_click
Sheet2.ComboBox1_click
Sheet2.ComboBox2_click
Sheet3.ComboBox1_click
Sheet4.ComboBox1_click
Sheet6.ComboBox1_click
Sheet6.ComboBox2_click
Sheet10.ComboBox1_click
Sheet10.ComboBox2_click
Sheet11.ComboBox1_click
Sheet12.ComboBox1_click
Sheet12.ComboBox2_click
Sheet15.ComboBox1_click
Sheet15.ComboBox2_click
Sheet16.ComboBox1_click
Sheet16.ComboBox2_click
Sheet17.ComboBox1_click
Sheet17.ComboBox2_click
Sheet18.ComboBox1_click
Sheet19.ComboBox1_click
Sheet19.ComboBox2_click
End Sub
All the code does is refresh the selection list in a combo box so it is up-to- date when the workbook is open.
View 7 Replies
View Related
Dec 5, 2011
I want to have a user-defined function where the user sends a range (i.e. "A1:J1") and each cell is viewed as a member of an array. I can do this if the user sends "A1,B1,C1,D1,E1,F1,G1,H1,I1,J1", but this is very cumbersome. I tried the following code:
Code:
Public Function CreateDenom(DenomValues As Range) As Variant
Dim tmpArr() As Variant
Dim c As Range
For Each c In DenomValues
tmpArr(c) = c.Value
Next c
CreateDenom = UBound(tmpArr)
End Function
This won't be the end product of course, but it's a starting point if I can get it to work. However, I get an error stating that "A value used in the formula is of the wrong data type."
View 2 Replies
View Related
May 23, 2007
I am using strongly typed code, but I am also pulling data from worksheets into variants. e.g.
Dim MyArray As Variant
MyArray = [MyNamedRange]
is there any shortcut to convert the variant to a typed array, which doesn't just involve looping throught the variant and using a casting function, e.g.
Dim MyArray As Variant
Dim typedArray() As type
MyArray = [MyNamedRange]
typedArray = shortcut(MyArray)
View 4 Replies
View Related
May 2, 2013
I have a variable that gets set to an address range:
Code:
TAG_RANGE = Sheets(BAL_SHT_TAB_NAME).Range("A1", Sheets(BAL_SHT_TAB_NAME).Cells(Rows.Count, Range("A1").Column).End(xlUp)).Address
In the first loop that executes this command TAG_RANGE gets set to $A$1:$A$39
I want to loop through the values in that range and run tests against them. Is there a function that will take the values in the address range an convert them into an array so that I can use something like this:
Code:
For Counter = LBound(TAG_RANGE_ARRAY) To UBound(TAG_RANGE_ARRAY)
[run tests]
Next
Or is there someother direct way to do this other than creating a loop that fills the array element by element
View 5 Replies
View Related
Feb 15, 2010
{= SUM(IF(({325,481,342,440,425}=ID)*($A37=DateRng)*1, ROUND(Sales,2),0))}
I am currently using this formula to retrieve total sales by day for each team and it works perfectly. Data is stored in columns by Date,Salesman ID,Sales.
I would like to replace the array portion with a vlookup to return the array set so i can use drop-down to select different teams and see the sales for that team.
{=SUM(IF((vlookup(TmName,Teams,2,0)=ID)*($A37=DateRng)*1,ROUND(Sales,2),0))}
This is the function as I thought it would work, but the vlookup returns "325,481,342,440,425" as a string not an array.
View 9 Replies
View Related
Apr 7, 2009
Say I have 3 columns of data: A1:C10 and I want to run a Match() function on them all together to see if I get a match any one those cells, say the value of have in X1.
Since, Match only allows a One-Column lookup array.. is there a way to "concatenate" or "append" the 3 columns together within a formula so now I would be looking to Match in an array that is 1 column * 30 rows?
Basically want to convert =Match(X1,A1:C10,0) to =Match(X1,A1:A30,0) without moving around the raw data in the sheet.
And I want to avoid doing an AND or OR formula that uses 3 separate MATCH() for each column.
I have a hunch that the MMULT or MMULT/TRANSPOSE functions are involved, but can't seem to get it right.
View 6 Replies
View Related
Sep 6, 2007
I have a byte array that contains a 4 byte floating point number. How would I convert this byte array to the single typed floating point number it contains?
View 9 Replies
View Related
Nov 6, 2013
Is there anyway to recreate this formula w/o it being an array ?
{=IF(C3="","",IFERROR(INDEX('Master List'!$B$1:$B$2000,MATCH(TRUE,ISNUMBER(SEARCH('Master List'!$A$1:$A$2000,C3)),0)),"ADD TO MASTER"))}
View 5 Replies
View Related
May 18, 2007
I just wanted to concatenate a few cells using an array formula like this:
{=SUM(IF(B2:J2="";0;B2:J2))}
Well, this does not work. I have no idea why it fails. Any solution to this without scripting?
View 9 Replies
View Related
Jun 30, 2006
i need to replicate what i did using array formulas with VBA macro (array variable). to make things clear and simple i created an example for illustration only. look at it & u will find what i did & what i need to do ,much of it
in writing so that i accurately describe my problem. attached is my example
View 4 Replies
View Related
Aug 25, 2006
I am trying to copy or edit a cell thats has the following formula (see below), I keep getting this message "You cannot change part of an Array!"
=If(ROW($A2:$A8)-ROW(A2)+1>COUNT(W2:W8),"",INDEX($A:$A,SMALL(W2:W8,ROW(INDIRECT("1:"&ROWS(A2:A8))))))
View 5 Replies
View Related
Jun 12, 2014
I have the following two columns, and would like to obtain for each individual Company, the corresponding Country values excluding duplicates as text in a single cell.
Company 2Country B
Company 2Country C
Company 3Country C
Company 3Country C
Company 5Country A
Company 5Country C
Company 5Country C
For example:
- For Company 2, a cell containing "Country B, Country C"
- For Company 3, a cell containing "Country C"
- For Company 5, a cell containing "Country A, Country C"
I've approached generating an array using an IF statement, as in =IF(INDEX(A1:A8="Company 5",,),INDEX(B1:B8,,)," "), which returns the following array: ={" ";" ";" ";" ";" ";" ";" ";"Country A";"Country C";"Country C";" ";" ";" ";" "}.
The question is: how do I get that array to produce, as text in a cell: "Country A, Country C". Note that the duplicate Country C has been removed.
There are a few "StringConcat" User-defined functions that I've found elsewhere on the internet, but they don't seem to be able to handle to conditionally generated IF Index array, which I would think is key to parsing between Countries corresponding to each Company in the list.
View 3 Replies
View Related
Nov 12, 2008
How to convert the excel formula into its value? I know the easiest way is to copy and use paste special then "value" options but is there a way to make it automated in case the desired output value has resulted.
HTML example:
A1 B1 C1 D1
1 2 A1+B1 Yes/No
on the above example, if D1=Yes, the output C1 will become value equals to 3 and the formula will be remove, if D1=No, the formula will still remain.
View 2 Replies
View Related
Jun 16, 2009
the following formula to be converted to vb for my userform.
=ROUNDUP(+J16-50000,-3)*0.00364+352
this is part of the vb that i'm working with and i need to change the part after "Then Amount =" I just can't seem to work out where to put the roundup bit.
View 2 Replies
View Related
Jan 5, 2013
The formula below is in cell H3. My requirement is to remove the formula and instead have a macro do the same thing that formula does.. in cell H3.
Formula:-
PHP Code:
=IF(COUNTA(F:F),MIN(IF(ROW(F:F)>MATCH(TRUE,F:F<>"",0),IF(F:F="",ROW(F:F))))+2-MATCH(TRUE,F:F<>"",0),"")
View 9 Replies
View Related
Jul 7, 2009
=SUMIF(Log!$B:$B,$A$2&" "&$A4,Log!$C:$C)
How would I convert this into VBA
View 9 Replies
View Related
Jul 5, 2012
I want to convert code below to excell formula
VB:
Sub Fonksyon171819()
Dim total As Double, i As Integer
total = 0
[Code]....
View 4 Replies
View Related
Feb 17, 2014
Below is my requirement and i have to convert formulas into vba code:
If dt = "A0" Or dt = "A1" Then
Sheet1.Range("K").Formula = "$J/$ I" ' Formula is k=J/I
Sheet1.Range("K:K" & last_row).FillDown
Sheet1.Range("L").Value = "20.00%"
Sheet1.Range("L:L" & last_row).FillDown //Formula is L=20% for now i have just hardcoded the value there.
Sheet1.Range("M").Value = "=($K-$L)* 100" 'Formula is M=(K-L)/*100
Sheet1.Range("M:M" & last_row).FillDown
End If
View 5 Replies
View Related