我想看看范围“A2:A500”是否包含文本“US”,如果是,我想在该特定行中划分单元格C和B.因此,例如,如果Cell A5包含US,那么只应划分B5 / C5。这可能吗?
我的公式
=IF(A2:A500="US*"; "$B2/$C500";"")
答案 0 :(得分:0)
是的,这是可能的,只有一个假设(1)只有一个“US”实例,如果有的话。从技术上讲,如果有多个单元格带有“US”,则可以完成,但是在这种情况下你不想清楚你想做什么(将这些B行的总和除以那些C行的总和?)< / p>
首先,我们将使用MATCH函数来确定A列中是否存在“US”的实例:
=MATCH("US*",A:A,0)
然后,我们将该公式嵌套在INDEX公式中,以从B列和B列中提取值。 C,来自我们从MATCH函数确定的行。
=INDEX(B:B,MATCH("US*",A:A,0))/INDEX(C:C,MATCH("US*",A:A,0))
最后,我们将整个公式嵌套在IFERROR函数中。如果由于任何原因出现错误,这将允许我们显示不同的值:
=IFERROR(INDEX(B:B,MATCH("US*",A:A,0))/INDEX(C:C,MATCH("US*",A:A,0)),"")
注意 - 例如,如果美国匹配,这也会显示错误,但列C中该行的值为0 - 因为它会创建除零错误。如果你想看到可能存在除以0的错误,你需要重构你的公式,使它首先检查A列中的匹配,然后计算除法,如下所示:
=IF(ISERROR(MATCH("US*",A:A,0)),"",INDEX(B:B,MATCH("US*",A:A,0))/INDEX(C:C,MATCH("US",A:A,0)))
答案 1 :(得分:0)
我看到非常简单,只需使用单元格的前两个字符来测试是否是US,无论字符串使用LEFT
公式
嗯,你有这个:
+----+-------+-------+-------+
| | Col A | Col B | Col C |
+----+-------+-------+-------+
| 1 | AG | 26 | 17 |
| 2 | JH | 25 | 22 |
| 3 | UY | 16 | 24 |
| 4 | JH | 11 | 11 |
| 5 | HY | 28 | 14 |
| 6 | BV | 25 | 27 |
| 7 | US | 15 | 18 |
| 8 | HY | 30 | 21 |
| 9 | HN | 21 | 22 |
| 10 | UY | 20 | 12 |
| 11 | BV | 10 | 23 |
| 12 | TD | 24 | 12 |
| 13 | US | 30 | 26 |
| 14 | UY | 24 | 19 |
| 15 | BG | 15 | 29 |
| 16 | TF | 30 | 23 |
| 17 | US | 27 | 24 |
| 18 | PO | 13 | 14 |
| 19 | US | 20 | 14 |
| 20 | MN | 28 | 20 |
+----+-------+-------+-------+
在单元格D1:D20内你写这个
=IF(LEFT(A1,2)="US",B1/C1,0)
这是:
如果单元格的前两个字符A#
(来自A列的单元格,任意数字)等于"US"
(IF(LEFT(A1,2)="US")
,THEN
将C除以C(相同的行),否则给出0
结果:
+----+-------+-------+-------+-------+
| | Col A | Col B | Col C | Col D |
+----+-------+-------+-------+-------+
| 1 | AG | 26 | 17 | 0.000 |
| 2 | JH | 25 | 22 | 0.000 |
| 3 | UY | 16 | 24 | 0.000 |
| 4 | JH | 11 | 11 | 0.000 |
| 5 | HY | 28 | 14 | 0.000 |
| 6 | BV | 25 | 27 | 0.000 |
| 7 | US | 15 | 18 | 0.833 |
| 8 | HY | 30 | 21 | 0.000 |
| 9 | HN | 21 | 22 | 0.000 |
| 10 | UY | 20 | 12 | 0.000 |
| 11 | BV | 10 | 23 | 0.000 |
| 12 | TD | 24 | 12 | 0.000 |
| 13 | US | 30 | 26 | 1.154 |
| 14 | UY | 24 | 19 | 0.000 |
| 15 | BG | 15 | 29 | 0.000 |
| 16 | TF | 30 | 23 | 0.000 |
| 17 | US | 27 | 24 | 1.125 |
| 18 | PO | 13 | 14 | 0.000 |
| 19 | US | 20 | 14 | 1.429 |
| 20 | MN | 28 | 20 | 0.000 |
+----+-------+-------+-------+-------+
LEFT and LEFTB functions和IF Function
的信息编辑#1
在我的示例中,只需在A列中放置两个字符,但如果列A的单元格中有任何字符串,并且任何字符串在开头都有US,则公式必须除B/C
,因为LEFT
函数,取字符串的前两个字符。
答案 2 :(得分:-1)
Sub test()
Dim i As Integer
Dim myRange As Excel.Range
For i = 2 To 500
If ActiveSheet.Cells(i, 1) = "US" Then
Set myRange = ActiveSheet.Cells(i, 2)
myRange.Select
Selection.UnMerge
End If
Next
End Sub
EDIT - ops, it contains US
Sub test()
Dim i As Integer
Dim sToCheck As String
Dim myRange As Excel.Range
For i = 2 To 500
sToCheck = ActiveSheet.Cells(i, 1)
If InStr(1, sToCheck, "US", vbTextCompare) > 0 Then
Set myRange = ActiveSheet.Cells(i, 2)
myRange.Select
Selection.UnMerge
End If
Next
End Sub