Return 索引中满足指定值的行号 (Excel)
Return the Row Number in an Index that meets a Specified Value (Excel)
我对 excel 中的索引有疑问。有没有办法,如果我定义一个范围(在这种情况下它将是 G2:G19),我可以 return 出现指定值的行(在这种情况下 = 100)吗?这是我的例子:
价值
G2 = 0
G3 = 0
G4 = 0
G5 = 100
G6 = 100
G7 = 100
在这个原因中我想 return “4” 因为这是第一行 100?这能做到吗?
谢谢!
假设您已经声明并打开了 Excel 对象并且您想要遍历 G 列。
startrow= 2
endrow = 19
counts = 0
Do While startrow <> endrow
val = objWorkbook.Sheets("nameofsheet_or_index").Cells.Item(startrow, "G").Value
If val = "100" Then
counts = counts + 1
Exit Do
End If
counts = counts + 1
startrow = startrow + 1
Loop
就像评论中提到的 Doug 一样,最简单的方法是使用 match 函数。 More info
=MATCH(100,G2:G7,0)
它 returns 是一个相对参考,因此您最终会得到 4。
第三个数字决定要查找的匹配类型。如果您在第一部分输入一个整数,那么第三个数字应该是 1 以查找小于该值的值,0 以查找完全匹配的值,-1 以查找大于该值的值。
我对 excel 中的索引有疑问。有没有办法,如果我定义一个范围(在这种情况下它将是 G2:G19),我可以 return 出现指定值的行(在这种情况下 = 100)吗?这是我的例子:
价值
G2 = 0
G3 = 0
G4 = 0
G5 = 100
G6 = 100
G7 = 100
在这个原因中我想 return “4” 因为这是第一行 100?这能做到吗?
谢谢!
假设您已经声明并打开了 Excel 对象并且您想要遍历 G 列。
startrow= 2
endrow = 19
counts = 0
Do While startrow <> endrow
val = objWorkbook.Sheets("nameofsheet_or_index").Cells.Item(startrow, "G").Value
If val = "100" Then
counts = counts + 1
Exit Do
End If
counts = counts + 1
startrow = startrow + 1
Loop
就像评论中提到的 Doug 一样,最简单的方法是使用 match 函数。 More info
=MATCH(100,G2:G7,0)
它 returns 是一个相对参考,因此您最终会得到 4。
第三个数字决定要查找的匹配类型。如果您在第一部分输入一个整数,那么第三个数字应该是 1 以查找小于该值的值,0 以查找完全匹配的值,-1 以查找大于该值的值。