2

我正在做一个项目,其中有一列 Ward Group 数据,数据格式为市名称 - 类型(City、Town、Village)Wards。例如:

ADAMS - T 1 & 2  
Cumberland V 1 - 5  
Marshfield - C 1 - 20, 23 - 25 & 27  
....  
etc.

要将这些信息链接到政府提供的病房 shapefile,我需要每个病房有一行。所以举个例子,我需要把上面的信息变成:

ADAMS - T 1  
ADAMS - T 2  
Cumberland V 1  
Cumberland V 2  
Cumberland V 3  
Cumberland V 4  
Cumberland V 5  
Marshfield - C 1  
....  
Marshfield - C 20  
Marshfield - C 23  

Marshfield - C 24  
Marshfield - C 25  
Marshfield - C 27  

此外,每个 Ward Group 行都有几列选举数据,我希望将其复制到每个新行中。例如:

Ward Group             Total Votes    
ADAMS - T 1 & 2          300    

需要变成:

Ward Group       Total Votes     
ADAMS - T 1        300  
ADAMS - T 2        300  

有没有办法在 Excel 中做到这一点,而不是手动,无论是公式还是 VBA?

4

1 回答 1

1

虽然没有这样标记,但我怀疑您需要为此编写代码,因此意味着您的问题“必须展示对正在解决的问题的最低限度的理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。” 或者可能被认为是题外话。所以也许从公式开始(假设每个“行”是一个单元格):

  1. 也许正则表达式使市政名称 - 类型链接更加一致(比如查找字母空格字母空格并用字母空格连字符空格替换字母空格 - 所以Cumberland V 1 - 5最终以与其他格式相似的格式结束,即Cumberland - V 1 - 5。)
  2. 然后使用=SUBSTITUTE(A1,"-",",",1)逗号替换类型之前的连字符(可以回复连字符,因为也用于范围指示)。
  3. 然后“修复”结果(粘贴特殊值以替换公式)。
  4. 然后用“,”和“&”作为分隔符(仅)解析结果(文本到列)。
  5. 在这些列左侧的右侧插入三个新列,并使用空格和连字符作为分隔符解析(现有)左列。

应用于您的示例,此时结果应如下所示:

SO18645869 示例

列 C 和 D 是范围的下限和上限 - 但我担心 E3 单独代表一个范围(尽管这可以再次与 Text To Columns 分开 - 需要注意的一点可能会将 27-29 与 27 混淆& 29.

公式可以做更多的事情,但我认为 VBA 是一个更好的选择——除非这绝对是一个“一次性”的要求。例如,投票,如果在不同的单元格中,可以在页面(?)被拆分后附加,通过查找功能。

于 2013-09-05T23:08:44.700 回答