Tag: 比赛

索引匹配2值与地址问题

我试图创build一个没有太多硬编码值的公式,并使用引用来返回一个值。 我有这个公式: {=INDEX(Calculations!$B$13:$Q$43,MATCH(1,(Calculations!$C$13:$C$43='Client Report'!$B$19)*(Calculations!$B$13:$B$43='Client Report'!B20),0),8)} 不过,我需要删除“客户报告”$ B $ 19部分,并将其dynamic引用,为此我使用了下面的代码,其中A20是我希望我的公式所在的单元格。 =ADDRESS(ROW(A20)-A20,2,1,1,"Client Report") 但是,当我包含这一行时,我收到#N / A错误,有没有人有任何想法来解决这个问题? 我怀疑Match的配方不会让我join一个公式作为参考。

两列匹配VBAvariables

我一直坚持在我的macros的这一行代码现在一个星期,阅读和尝试了很多方法来解决这个问题。 我必须声明,我对VBA不是很好,所以请耐心等待,我会欣赏一些步骤的标记性解释。 我想要做的事情其实很简单,我在表格中有一个大约1000行的大型数据库,我希望尽可能有效地为相同行号的两列(重复)进行匹配,例如: 专栏1:詹姆斯,约翰,约翰,詹姆斯,杰布 专栏#2:史密斯,李,史密斯,威尔斯,黑色 我想find与“约翰”和“史密斯”行,简单的答案是第3行。 但增加的复杂性是匹配目标是一个variables,例如 dim name1 as string dim name2 as string dim r as long name1 = "John" name2 = "Smith" r = application.worksheetfunction.match(name1&name2,.range("A:A")&.range("B:B"),0) 这个函数必须在macros中迭代多次。 我试过例如使用for i = 1到1000,并通过if参数单独匹配两列,但据我所知我无法得到循环的行号,即r = result.row变成在循环之外清空。 非常感谢您阅读这个! 这个论坛对我现有的代码贡献了很多,我非常感谢迄今为止的帮助。

评估不适用于VBA的公式

下面的公式有什么问题? matchformula = "{=MATCH(1, (G12= G:G) , 0)}" x = MySheet.Evaluate(matchformula) 而下面的代码产生了正确的结果。 matchformula = "=MATCH(G12, G:G , 0)" x = MySheet.Evaluate(matchformula)

匹配并replace另一个表单元格

我没有经验,当谈到这种types的查询,我卡住了。 我发现了一个我已经使用的工作查询,这里是逻辑: “如果Sheet2中的任何单元格A列= Sheet1列B中的任何单元格,则将sheet2列更改为sheet1列的单元格值” 这个公式是: Sub Test1() Application.ScreenUpdating = False Dim cell As Range, varFind As Variant With Sheets("Sheet1") For Each cell In Sheets("Sheet2").Columns(1).SpecialCells(2) Set varFind = .Columns(2).Find(What:=cell.Value, LookIn:=xlFormulas, LookAt:=xlWhole) If Not varFind Is Nothing Then cell.Value = .Cells(varFind.Row, 1).Value Set varFind = Nothing Next cell End With Application.ScreenUpdating = True End Sub 这对我来说很好,但我需要稍微不同的。 它需要遵循这个逻辑: […]

比较excel中的2列

我正在比较2列的相似之处。 列A和B中有string,我想在列A的特定行与列B中的相应行匹配时显示。注意列A中的一些行可能是空的。 所以,基本上这个=> if (A1==B1), C1 = TRUE 以下是我迄今为止所尝试的: =IF(ISERROR(MATCH(A1,B1:B1,0)),"",A1) =EXACT(A1,B1) =IF(A1=B1,"True",B1) 这些都没有给我包含以下数据的列匹配: ColA ColB Xanthomonas oryzae Xanthomonas oryzae 将不胜感激此帮助。 谢谢!

在列中find匹配项时如何插入行?

希望下面描述的我的问题是一个简单的问题。 我对VBA还是一个新鲜的东西,似乎无法摆脱我目前的困境……学习方面的好日子和坏日子。 不幸的是,本周让我不知如何继续前进。 下面显示的macros将基本上运行在一个有2张(MPL和CAD)的电子表格上。 MPL表=简单的信息表 CAD工作表包含3个不同宽度的表格(即第一个表格从C列到AE,第二个和第三个表格从C列到M)。 所有3个表格都包含C列中的项目名称。 当macros运行时,它从MPL表单开始,提示用户input一个新的项目名称,然后按照字母顺序将其添加到一个新的行中。 这很好。 下一步是CAD工作表。 正如我所说,有3个表格。 我可以插入新的项目,但是只能插入到列C中新名称所示的表格中的一个中。这就是我不知所措的地方。 我相信我必须find一种方法来将列C的所有值放入某种数组中,然后在每个实例上添加一行。 这听起来像一个合乎逻辑的计划吗? 我已经无休止地寻找一种方法来做到这一点,似乎无法获得任何理由。 “iRow = WorksheetFunction.Match(strNewProject,Range(”C:C“))+ 1”方法似乎足够在一个表上。 任何正确的方向指针赞赏。 Option Explicit 'forces declaration of variables 'PROCEDURES———————————————————————————– Sub Add_Project() '—Procedure description/Notes————————————————————— 'Macro Overview: 'This procedure is used to add new projects to the Planner 'Once the macro is started, the user will be prompted for […]

Excel 2010 VBA匹配function找不到匹配项

在Excel 2010中,下面的MATCH语句不起作用。 该函数应返回由datasetId(应该是唯一的)标识的数据集的行号,如果datasetId不存在,则返回0。 无论datasetId是否存在于第一列,函数总是进入第二个分支并返回0 Function findDataset(dataWorksheet As Worksheet, datasetId As String) As Integer If Not VBA.IsError(Application.Match(datasetId, dataWorksheet.Columns(1), 0)) Then findDataset = Application.Match(datasetId, dataWorksheet.Columns(1), 0) Else findDataset = 0 End If End Function

Excel:检查值的发生,比较内容与范围和设定值

我尝试在Excel中结合几个函数,对于那个特殊的问题,我找不到解决scheme。 我想检查一个值是否包含在一个行中多次 。 如果是这样,我必须得到所有匹配的值。 我不想给出所有匹配的内容! 但我想比较这些值与另一个范围的值,然后确定匹配是否都是相同的types 例: 我有一张桌子,像: 动物| 数 ___________ | ___________ 狗| 2 | 猫| 1 | 兔子| 2 | 猫| 1 | 狗| 3 | 狗| 2 现在我想要创build一个表格,表示数字是否只出现一次,或者如果它们出现的次数多于同一个动物或多次混合: 数字| 一次| 更多次单狗| 更多次单身猫| 多次混合 _________ | ___________ | _________________________ | _______________________ | ____________________ 1 | O | O | X | Ø | […]

在无序列表上使用WorksheetFunction.Match,而不是确切的

我有两个工作簿,并且都删除几乎相同的项目列表。 其中一个列表的末尾有一些额外的空间,它把我完全扔掉了。 Public Sub test() 'Imports data into M&R spreadsheet Dim wbMnR As Workbook Dim wbMatch As Workbook Set wbMnR = Workbooks("MnRs.xlsx") Set wbMatch = Workbooks("Match.xlsm") Dim myRow As Integer For i = 1 To 10 myRow = WorksheetFunction.Match(wbMatch.Worksheets(1).Range("a" & CStr(i)), wbMnR.Worksheets(1).Range("A:A"), 0) Debug.Print myRow Next i End Sub 在副本中的项目列表是 "R-01" "R-02" "R-03" "R-04" 粘贴的项目列表是 […]

错误1004与excel vba中的匹配方法

我在excel中使用两张不同的工作表,每个工作表都有一组约1200个ID号码。 当参考工作表1(RG摘要)时,我试图findID在第2页(采购matrix)上显示的行号。 这是为了最终在表单1上执行一些条件格式,其中工作表2的ID在其行上具有特定值。 我对VBA知之甚less(今年夏天我只是在做实习),所以我肯定我可能会错过一些重要的概念……但是目前我得到这个错误 运行时错误“1004:无法获取WorksheetFunction类的Match属性 上 RowNum= WorksheetFunction.Match(ID2, Range("E10:E1500"), 0) 在debugging时,我可以看到ID2正在携带第一次迭代的ID值,但是RowNum返回为0。 Sub DisplayMatrix() Dim i As Integer, j As Integer, ItemID As String, rng1 As Range, _ ID2 As String, RowNum As Integer, PM As Worksheet 'initiates loop in sheet 1 'each ID is 7 cells apart For i = 14 To 1757 Step 7 […]