Excel 如果行中包含特定文本,则将行中的单元格分割

Excel 如果行中包含特定文本,则将行中的单元格分割,excel,excel-formula,vba,Excel,Excel Formula,Vba,我想看看范围“A2:A500”是否包含文本“US”,如果包含,我想在指定行中分割单元格C和B。例如,如果单元格A5包含US,则只应划分B5/C5。这可能吗 我的公式 =IF(A2:A500="US*"; "$B2/$C500";"") 是的,这是可能的,有一个假设(1)只有一个“我们”,如果有的话。从技术上讲,如果有多个单元格带有“US”,则可以这样做,但不清楚在这种情况下您要做什么(将这些B行的总和除以这些C行的总和?) 首先,我们将使用MATCH函数确定A列中是否有“US”的实例: =MA

我想看看范围“A2:A500”是否包含文本“US”,如果包含,我想在指定行中分割单元格C和B。例如,如果单元格A5包含US,则只应划分B5/C5。这可能吗

我的公式

=IF(A2:A500="US*"; "$B2/$C500";"")

是的,这是可能的,有一个假设(1)只有一个“我们”,如果有的话。从技术上讲,如果有多个单元格带有“US”,则可以这样做,但不清楚在这种情况下您要做什么(将这些B行的总和除以这些C行的总和?)

首先,我们将使用MATCH函数确定A列中是否有“US”的实例:

=MATCH("US*",A:A,0)
然后,我们将该公式嵌套在一个索引公式中,从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)))

我觉得很简单,只需使用单元格的前两个字符,使用
LEFT
公式测试字符串是否为US

你有这个:

+----+-------+-------+-------+
|    | 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”
(如果(左(A1,2)=“US”)
,则
将B除以C(同一行),否则给出A
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 |
+----+-------+-------+-------+-------+
和的信息

编辑#1


在我的例子中,只需在A列中放入两个字符,但如果A列的单元格有任何字符串,并且其中任何字符串的开头有我们,则公式必须除以
B/C
,因为
LEFT
函数取字符串的前两个字符。

谢谢。但有可能将其作为公式吗?i我认为这是不可能的。如果(COUNTIF(A2:A50;“US*”);$C17/$B17;“”)我把它改成了这个,但现在我给了它“正确的”单元格,它自己能找到“C17/B17”吗A2:A500中的单元格一开始可以有任何字符串吗?像这样的USLJLJO???
+----+-------+-------+-------+-------+
|    | 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 |
+----+-------+-------+-------+-------+