Tag: if statement

如何处理100多个IF语句

我正在使用MS Excel 2007中的checkbox数组创build一个清单。根据checkbox的数量,有2 ^ 7(= 128)个可能的组合,其中可以selectcheckbox。 每个checkbox组合都会给出一个独特的结果。 什么是最有效的方法来成功testing每个条件,并在工作表中的单元格中给出结果? 示例代码: =if(and(chkbox1=true,chkbox2=true,chkbox3=false,chkbox4=false,chkbox5=true,chkbox6=false,chkbox7=true),"Unique outcome",if(and(chkbox8=true,chkbox9………….))))))))) 我有(尝试失败)的方法是使用IF语句。 我试图绕过嵌套的IF限制,通过创build14个具有约9个嵌套IF的命名范围,并在电子表格中的有效嵌套IF中编译14个命名范围。 不幸的是,处理器正在努力计算这个结果(即电脑是“冻结”)。 减less指定范围内嵌套IF的数量(但增加电子表格中嵌套IF的数量)会对效率产生影响吗? 在单元格中使用嵌套的IF而不是命名范围会更好吗? VLOOKUP会工作吗? 目前,我正在考虑使用VBA代码,因为人们曾经说过这将是处理多种条件的最有效方法。 有没有人有任何build议或build议?

Sql条件语句

我有一个Excel工作表,下面有这个公式。 我想用sql来计算相同的公式。 在Excel公式中有一个嵌套的if条件。 是否有可能与SQL? 我试过“ Case .. When .. Then .. Else .. ”但是我不能pipe理! 在我的Excel表格中,这个计算结果是“OK” 谢谢, Declare @ProjectName nvarchar(max) Declare @NewTotalElapsedTimeEnd nvarchar(max) Declare @TotalElapsedTime nvarchar(max) Declare @SlaTime nvarchar(max) Declare @Result nvarchar(max) set @ProjectName = '' set @NewTotalElapsedTimeEnd = 0 set @TotalElapsedTime = 69563 set @SlaTime = 86400 Excel公式 =IF(ProjectName<>"","PROJECTED",IF(NewTotalElapsedTimeEnd=0,IF(TotalElapsedTime-SlaTime<0,"OK","NOK"),IF(NewTotalElapsedTimeEnd-SlaTime<0;"OK";"NOK")))

限于其他条件?

所以我有一些VBA代码被devise成根据单元格中的值来做一些事情。 单元格中的值被读取并且代码相应地运行。 这工作没有问题。 If Target.Value = "something" Then End If ElseIf Target.Value = "something2" Then End If ElseIf Target.Value = "something3" Then End If ElseIf Target.Value = "something4" Then End If 这工作完美,但是,如果我添加一个额外的ElseIf条件,我得到“Else没有如果”的编译器错误。 如果在第五种情况下改变Else,则不能解决问题。 我的问题是,如果我可以运行的条件是否有限制? 我实际上只需要第五个就完全用我正在做的事情来完成。 我是积极的条件内的代码没有错误。

Excel VBA中的IF ElseIF语句

我正在尝试编写一个基于国家的数据库search的脚本。 search在名为“数据库”的数据表上运行,并将结果粘贴到名为“结果”的不同表单中。 search取决于用户input的variables,我已经定义为“国家”,“类别”和“子类别”: country = Sheets("Results").Range("D5").Value Category = Sheets("Results").Range("D6").Value Subcategory = Sheets("Results").Range("D7").Value finalrow = Sheets("Database").Range("A200000").End(xlUp).Row 我想通过UserForm填入的search条件导致不同的情况。 因此: 1 – 如果用户search数据库中未包含的国家/地区,search将不会运行,并会popup消息。 我使用了一个.Find函数如此: With Worksheets("Database") Set c = .Range("A:A").Find(What:=country, After:=.Cells(1, 1), _ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False) If Not c Is Nothing Then Else MsgBox "Unfortunately, the database does not have any sources for information in […]

如果和DoUntil VBA代码不会显示输出

不能似乎弄清楚为什么我的代码不显示输出。 新的VBA程序员只知道基本知识,所以任何帮助将是有帮助的。 我想要的是让Excel开始检查特定文本的特定列1,然后开始复制并粘贴这些值直到达到text2。 之后,我希望它以相同的方式检查下一个第五列。 如果你可以build议修改我的代码。 没有在列的for循环,我的代码看起来像这样。 Private Sub CommandButton7_Click() Dim x As Long, y As Long Dim a As Long y = 1 'starts with the first column x = 1 'first row a = 70 'this is the row where i want the data to be posted If Cells(x, y).Value = "text1" Then 'check […]

Excel IF公式varififying一个单元格有数据,另一个单元格有特定的值

我有一个Excel电子表格,其中包含我们正在处理的项目的数据。 如果A3包含任何数据,B3不包含5个不同的团队成员名称,则需要在单元格C3中输出“分配我”。 请参阅下图:如果A1 =还包含数据,则需要状态才能读取“仅指定我”。 在第4行下面的A4不包含数据…我需要公式检查特定的名称,以及列A中的文本。如果列A没有文本,它应该输出空白。 列C3公式: =IF(B3="Jon","",IF(B4="Sally","",IF(B3="Connie","",IF(B3="Edgar","",IF(B3="Tony","","Assign Me"))))) 此公式不validation列A中的文本 ABC 1 3/21 Jon 2 3/21 Oscar Assigned 3 Oscar Assigned 这是我需要的。 如果A3是空白的,并且如果B3不包含Jon,Sally,Connie,Edgar或者Tony则会在C3中显示“Assign Me”。 如果没有,请将C3留空。 我需要添加什么来使其按预期工作?

IF和AND组合

我有IF函数的问题。 我想结合ANDfunction。 我做的是: If(and((C2:G2)>5,5);"Gehaald";"Niet gehaald") 我知道你可以这样手动完成这一切: And(C2>5,5;D2>5,5…) 有什么办法可以把这个公式缩短一些吗?

VBA:24深度嵌套IF语句的性能

原来的问题 我有一个24深嵌套IF语句的子 l=2 While l <= lmax 'lmax = 15000 If condition1 Then If condition2a or condition2b Then … If condition24 then ReDim Preserve propositions(UBound(propositions) + 1) propositions(UBound(propositions)) = l 由于这个子被称为250次,所以IF语句被称为250 * 15000,因此性能是一个大问题。 (这个macros在23秒内运行。) 当我写的时候If condition2a or condition2b Then ,如果条件2a是真的,VBA检查条件2b吗? (也就是说,应该规定a和b,使aless于b ? PS:当然,条件1和2已经订购。 简短的回答 正如@iDevlop所说,简短的回答似乎是VBA不允许“ 短路评估 ”( 见这篇文章 ) 解决我的性能问题 我的问题是VBA 读取/从表单中访问数据 (而不是VBA计算IF语句)。 解决scheme是将数据加载到2Darrays中 。 […]

Excel嵌套if子句来查找名称并分配一个值

要窝还是不窝? 我有一个Emp的名单。 ID和名称在两列 EMP。 ID名称 DOEJ Doe,John 根据名字,我想给另一列的员工分配一个class次号码。 下面是我设置的if语句,用于search名称并分配一个class次。 但是我认为必须有一个更高效的方式。 =IF(Table4[@Name]="B,Cis",1, IF(Table4[@Name]="Petty, Richard",1, IF(Table4[@Name]="Trump, Donald",1, IF(Table4[@Name]="Johnny, John",1, IF(Table4[@Name]="Carlos, Mencina",1, IF(Table4[@Name]="Smith, Smith",1, IF(Table4[@Name]="Day, Conner",2, IF(Table4[@Name]="Macho, Man",2, IF(Table4[@Name]="Doe, John",2, IF(Table4[@Name]="Sandy, Johnron",2, IF(Table4[@Name]="Conner, Donaldson",2, IF(Table4[@Name]="Randy, Jones",2, IF(Table4[@Name]="Cook, Joseph",3, IF(Table4[@Name]="Cooper, Johnny",3, IF(Table4[@Name]="Rodrigo, Cooker",3, IF(Table4[@Name]="Potter, Copper",3, IF(Table4[@Name]="Rodrigo, Gonzolez","A", IF(Table4[@Name]="Ronny, Ponny","A", IF(Table4[@Name]="Rodrigo, Coolio","A", IF(Table4[@Name]="Roma, Coma","B", IF(Table4[@Name]="Star, Como","B","N/A")))))))))))))))))))))

如何添加更多的标准到这个IF(COUNTIF公式?

我有一个公式,我想添加更多的标准,但不知道如何写出来: =IF(COUNTIF($O$4:$O$36,O4)>16,1,2) 我想添加更多的标准,如果O4在这个列表中大于16次,那么P4将会是1 : 如果O4计数<= 15次,则P4将是2 ; 如果O4计数<= 10次,则P4将是3 ; 如果O4计数<= 5次,则P4将是4 ; 否则P4将是5 。 上面的公式只是“如果O4在这个列表中的次数> 16次,那么P4将是1,否则它将是2” 我如何完成这个公式? 这是一个例子: