这是一个复杂的问题,涉及多个步骤。
我有一位客户,他有一些信息需要作为注释导入到 Salesforce。
他们是相对地格式如何,他们不做任何限制。只要信息存在,并且特定帐户可以访问,他们就很高兴。
Salesforce 导入注释要求注释位于一列中。问题在于,与主 excel 文件不同的注释文件中实际上有大约 3,000 个不同的注释行。这些注释行中的每一个都按以下格式组织:
ABC Company
Called ABC Company
Had a meeting with ABC Company's Dave at lunch on Friday
Did XYZ with ABC Company
DEF Incorporated
Met DEC Executive while golfing
Sold 30 widgets to DEC yesterday
基本上,公司名称,后跟与该公司相关的可变数量的行,后跟两行空白,后跟另一家公司等等,直到文件末尾。
所以我需要:
在组内的第一行之后为每一行创建一个单独的列,如下所示:
Called ABC Company | Had a meeting with ABC Company's Dave at lunch on Friday | Did XYZ with ABC Company
Met DEC Executive while golfing | Sold 30 widgets to DEC yesterday
并根据组的第一行,将其与第一个 excel 文件中的 a 列进行匹配。
或者我必须想出其他更有效的方法来做到这一点。
答案1
这很令人困惑(例如“这些注释行中的每一行都按以下格式组织:”但示例看起来是柱状的,并且上一个示例的第二部分缺少公司名称),因此,只能猜测:
- 复制数据并以未格式化的形式粘贴到 Word 中。
- 全选并用一些独特的东西(zzz?)替换^p^p
- 将 ^p 替换为 ^t。
- 将 zzz^t 替换为 ^p
- 重新导入 Excel。
答案2
诀窍是确保数据确实有规律。如果每条记录正好是 4 行,中间由一些空行隔开,那么就万事大吉了,如果行数不同,您可能需要调整以下步骤。虽然我通常会直接编写宏,但只需使用 Excel 中的常规公式即可重新格式化这些数据。
步骤 1.
在所有数据的左侧插入一个新列,并在数据上方插入一个空白行(即,您的数据现在从 B2 开始,并且 A 列全部为空白)
步骤 2. 使用公式标记每条记录的开始。在 A2 中插入以下公式。使用填充功能将此公式复制到整个电子表格中
=IF(AND(ISBLANK(B1)*NOT(ISBLANK(B2))),"START","")
您的数据现在如下所示:
START ABC Company
Called ABC Company
Had a meeting with ABC Company's Dave at lunch on Friday
Did XYZ with ABC Company
START DEF Incorporated
Met DEC Executive while golfing
Sold 30 widgets to DEC yesterday
步骤 3.现在我们可以编写一个公式来合并 C 列(或更靠右)中的所有内容
=IF(A2="START",CONCATENATE(B2,"|",B3,"|",B4,"|",B5),"")
您的 C 列最终将如下所示:
ABC Company|Called ABC Company|Had a meeting with ABC Company's Dave at lunch on Friday|Did XYZ with ABC Company
DEF Incorporated|Met DEC Executive while golfing|Sold 30 widgets to DEC yesterday|
步骤 4. 全选、复制、选择性粘贴 - 仅限值
步骤 5. 对 C 列进行排序,使空白行落到底部,复制并粘贴到文本文件中,即可将其加载到 Salesforce。
答案3
而且总是有宏选项。以下假设 1) 您的数据全部在第 1 列中,2) 您的每家公司之间都用空白行分隔。请随意评论需要进行的调整。
您可能希望在运行此操作之前创建工作表的副本。
子重新包装() Dim lRow 为 Long Dim lDropRow 为 Long 常量 iCol = 1 删除行 = 1 l行 = 2 做 ' 检查空白条目 - 表示新公司 如果 Cells(lRow, iCol) = "" 那么 lDropRow = lRow 行(lRow).删除 行数 = 行数 + 1 别的 ' 注释已确认 - 将注释汇总到一行中 做 单元格(lDropRow,256).End(xlToLeft).Offset(0,1)= Trim(单元格(lRow,iCol)) 行(lRow).删除 循环直到单元格(lRow,iCol)=“” 万一 循环直到 lRow > Cells(65536, iCol).End(xlUp).Row 子目录结束