Tag: 数组

与OR条件匹配的索引匹配数组公式

我有一个数据框,其中包含主任务员和辅助工作人员连接到任务的任务列表。 例如, **Job** | **Primary** | **Secondary** Sales | Bob | John Marketing | Jeff | Bob Management | Steve | John 我的问题是,当Bob匹配Primary或​​Secondary时,如何写一个数组公式来返回一个Job列表? 到目前为止,我的公式是这样的: =(IF(ROWS(D$3:D3)<=$E$1,INDEX(Jobs!$A$2:$A$3,SMALL(OR(Jobs!$B$2:$B$3=$D$1,Jobs!$C$2:$C$3=$D$1,ROW(Jobs!$A$2:$A$3)-ROW(Jobs!$A$2)+1),ROWS(D$3:D3))),"")) …其中D1包含Bob的名字,并且E1包含在任一列中出现他的名字的COUNTIFS() 。 我在D3和D4分别寻找的答案是“销售,营销”。 让我知道如果你需要任何澄清!

将date范围与数组值进行比较

我试图创build一个函数来连接一个单元格的范围,如果他们各自的date是更大或等于(> =)到存储在工作表单元格中的特定date。 在下面的代码中, DatesRange_V是一个包含date列表的数组,而ThisDate是包含date的A1。 我希望通过ConcatRange_V循环,并在date大于ThisDay时将它们与分隔符连接起来。 Function ConcatRangeIf() As String Dim ConcatRange As Range Dim DatesRange As Range Set ConcatRange = Range("RP_Names") 'A list of names to concat Set DatesRange = Range("RP_Dates") 'A list of dates Dim Result As String Dim Seperator As String Dim FirstCell As Boolean Dim ConcatRange_V() As Variant Dim DatesRange_V() As Variant […]

在Excel中只使用一个公式来计算多个COUNTIF的结果

你好,所有的Excel大师, 我有一个Excel电子表格,其中包含未定义数量的行(从1到X – X通常less于200)。 每一行都有一些包含一些数据(项目编号,date,…)的初始列,从列I开始,列数不确定(从1到x – x一般小于50),可以是空的或包含“x”。 在每一行中,我想要统计“x”的数量(我知道如何处理COUNTIF函数)。 在不同的表格中,我想要统计次数为1的次数,次数为2的次数等等,直到6。 对我来说问题是行和列的数量正在改变,我想把所有这一切放在一个单一的公式,使用数组,但我所有的尝试失败。 我现在的公式得到总数为1的行数是: {=SUM(IF(SUM(IF(OFFSET(OFFSET($H$2;1;0;TotalLines;1);0;1;1;TotalColumns)="x";1;0))=1;1;0))} TotalLines和TotalColumns被命名的范围分别包含行数和列数的结果,以便我有当前显示的行和列的确切数量。 显然,公式不起作用… 你可以请告知如何进行, 预先感谢您对我们的支持

引用一个数组(在一个数组中)

我的小组想要做的是: 取一个数组(例如(1到100,1到36),包含在数组中) 只需要一些列(例如,我只想要列2,5,7等) 将原始数组replace为只包含那些列的数组(所以它将从(1到100,1到36)到例如(1到100,1到5))。 我通过将我想要的列复制到一个新的数组中,然后擦除原始数据并仅使用新的信息重新创build它。 注意,我所有的数组都是dim arrVariable as Variant变体首先dim arrVariable as Variant与arrVariable = Array()我有一个数组数组arrAggregatedArrays(1 to 8) 我分的相关部分是: FilterSheetArrayForColumns (ArrAggregatedArrays(i)) Private Sub FilterSheetArrayForColumns(ByRef arrSource As Variant) '/====================================================================================================================================================== '/ Author: Zak Armstrong '/ Email: zak.armstrong@luminwealth.co.uk '/ Date: 12/August/2015 '/ '/ Description: Takes Sheet arrays, finds the columns from the colAllHeadings, recreates the array with just that data […]

Excel索引+ if +间接

我正在帮助朋友完成一项工作任务,无法弄清楚最后一部分。 我们给出了一个matrix,其中包含以下布局的工作人员/用户列表: Location | First Name | Last Name | Property 1 | Property 2 | Property 3 | .. | Property N Frankfurt | Adam | Schmidt | X | | X | .. | X, 即属性是布尔forms(X表示“是”,或者空表示“否”)。 任务是根据位置+ 1属性search所有用户,我们可以从N个属性中进行select,即我们有一个下拉菜单,其中包含所有属性1,2,…,N,我们可以精确select1的属性。 输出应该是格式:Location | 名字| 姓。 所以,我的想法是用我们select的属性的ADDRESSreplace标准IF((“array for criteria 1”=“criteria 1”)*(“array for criteria 2”=“yes”),…) ,然后我们使用INDIRECT函数从文本值转换为单元格引用。 举个例子,如果我们在下拉菜单中select属性1(位于D列),ADDRESS函数将返回$ D […]

数组公式导致#REF错误

我不太清楚为什么会出现这种情况,但似乎无法在网上find解决scheme。 我只是试图复制一些公式从一个表到另一个(公式将在目标工作表.FillDown ),但我特别是有一个公式的问题。 我相信这是因为公式是一个数组,但即使当我使用.Range.FormulaArray我收到相同的#REF! 错误。 这里是公式和转移它的脚本: (注意:公式中的引用对于目标工作表而不是原始工作表是准确的 – 公式将保留在指定的工作表中,因为在closures工作簿以减小文件大小时目标工作表上的所有数据都将被删除) 拟定公式 IF(LEFT(H2,1)="2","Platforms",INDEX('Units – Job Numbers'!$A$2:$A$200,SMALL(IF('Units – Job Numbers'!$B$2:$CO$200=I2,ROW('Units – Job Numbers'!$B$2:$CO$200)-ROW('Units – Job Numbers'!$B$2)+1),1))) 转移后的公式 =IF(LEFT(H2,1)="2","Platforms",INDEX('Units – Job Numbers'!#REF!,SMALL(IF('Units – Job Numbers'!#REF!=I2,ROW('Units – Job Numbers'!#REF!)-ROW('Units – Job Numbers'!#REF!)+1),1))) VBA 'Copy and Extend Raw WIP Data Formulas With ThisWorkbook.Worksheets("Raw WIP Data") .Range("AE2:AL2").Formula = ThisWorkbook.Worksheets("Formulas").Range("A7:H7").Formula .Range("AM2").Formula = ThisWorkbook.Worksheets("Formulas").Range("I7").Formula […]

运行multidimensional array并检查工作表中的数据

有一个数组获取单元格颜色的logging加上与该行相关的ID,这是特定于该行。 现在我想通过拾取ID的数组运行,然后使用它与另一个工作表进行比较(使用ID),以查看单元格的颜色是否已更改。 我试图以“黑客”的方式做到这一点,但我不知道如何通过每个数组logging和皮卡ID额外检查。 Sub FindColourChange() 'this first bit is getting the data and putting in array Dim newSheet As Worksheet Dim r As Integer Dim c As Integer Set newSheet = ThisWorkbook.Worksheets("Combine") intRowsNew = newSheet.UsedRange.Rows.Count Dim newColourArray() ReDim Preserve newColourArray(2 To intRowsNew, 7 To 19) For r = 2 To intRowsNew ' this is the […]

循环variables以高于预期的值结束

在Excel中运行的VBA中,我正在运行一个用值填充数组的基本循环。 代码如下。 我觉得奇怪的是,计数器的值从0开始,但是以7结束,而不是6.我可以注意到,当我在本地窗口中查看并逐步运行代码时。 看来它的最后一个运行“Next”的值变成了7 这是正常的,还是有什么我做错了? 这里似乎没有改变结果,但如果我使用更复杂的代码,我想确定这是我应该期待的。 Sub ArrayLoop() Dim myArray(6) As String Dim Counter As Integer For Counter = 0 To 6 myArray(Counter) = Range("A1").Offset(Counter, 0).Value Next End Sub

Excel VBAreplace为数组

现在我正在使用一种非常低效的replace函数的方式: Dim Replacement As String Dim rngRepVal As Object Set rngRepVal = Sheets("data").Range(Cells(1, 3), Cells(intRowLast, 3)) Replacement = ActiveCell.Value rngRepVal.Replace What:="123", Replacement:="ABC", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False rngRepVal.Replace What:="234", Replacement:="ABC", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False rngRepVal.Replace What:="456", Replacement:="DEF", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False … [goes on for 50 lines] Set rngRepVal = Nothing 我想知道这是否可以用数组来实现。 就像是: Dim aWhat() As String Dim aReplacement() […]

如何将logging集值分配给二维数组

我目前正在使用Excel VBA和SQL查询。 我试图把我放到我的logging集中,并将其转储到一个二维数组,所以我可以在函数的后面部分使用这些信息。 问题是我只知道从logging集中提取信息的两种方法:CopyFromRecordset和rs.Fields。 这是我正在尝试的代码。 Dim ID_Array(150, 2) As String Set rs = New ADODB.Recordset Set oConn = New ADODB.Connection strSql = "select id, name from groups" rs.Open strSql, oConn Do While Not rs.EOF With ActiveSheet For Index = 0 To 171 ID_Array(Index, 0) = CStr(rs.Fields(0).Value) 'Safety check to make sure the value isn't null […]