【问题标题】:Excel - Renaming and SUM - Manipulating values automaticallyExcel - 重命名和 SUM - 自动操作值
【发布时间】:2014-04-15 21:54:50
【问题描述】:

我有以下问题要使用 excel 表来解决:

A 列包含国家名称,B 列包含值,如下例所示。 A 列中有一些名称带有附加词,因此我需要将它们视为其他列的唯一国家/地区。

举个例子:

            A           |     B
------------------------------------
      Country Name      |   Number
------------------------------------
ITALY (MOBILE)          |    100
PORTUGAL (MOBILE)       |    180
UNITED KINGDOM (MOBILE) |    160
ARGENTINA BUA           |    120
FRANCE MOBILE ORANGE    |    100
CHINA (MOBILE)          |    100
ITALY                   |    93
SPAIN (MOBILE)          |    90
PORTUGAL                |    85
GERMANY (MOBILE)        |    75
UNITED KINGDOM          |    10
GERMANY                 |    70
ECUADOR (MOBILE)        |    55

出口可以是如下表,在同一个工作表中,例如,列 D 和 E。 它将国家值相加并将它们显示为正确的唯一国家名称(正确的名称将是第一个出现的国家名称,在 "(" 之前,并且没有 "()" 之间的值)。

            A           |     B
------------------------------------
ITALY                   |    193
PORTUGAL                |    265
UNITED KINGDOM          |    170
GERMANY                 |    145
ARGENTINA               |    120
FRANCE MOBILE ORANGE    |    100
CHINA                   |    100
SPAIN                   |     90
ECUADOR                 |     55

使用 VBA 更容易吗?

谢谢各位!

【问题讨论】:

  • 我如何使用 TRIM 对来自同一国家的值求和?

标签: vba excel


【解决方案1】:

我会这样做:

  1. 标记 C 列国家(或任何您需要的)并将此公式写在 C 列中:

    =SUBSTITUTE(A2,"(移动)","")

  2. 在 A 到 C 列上创建一个数据透视表,将 C 列作为行标签,将 B 列的总和作为值。

@pnuts 在下面提出了一个很好的观点。我会在第 1 部分使用这个公式:

=IFERROR(TRIM(REPLACE(A2,FIND("(",A2),FIND(")",A2)-FIND("(",A2)+1,"")),A2)

【讨论】:

  • 如果没有括号,那么您如何确定需要查找和替换的位置?
  • 如果使用括号的存在找不到它,你要替换什么?
  • 我们误会了。我现在明白了当没有括号时我的函数失败是什么意思,我已经使用IFERROR 函数在上面修复了它。我以为你反对通过括号之间的存在来识别多余的文本。
猜你喜欢
  • 1970-01-01
  • 2011-08-29
  • 2017-11-27
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 2016-06-25
  • 1970-01-01
相关资源
最近更新 更多