使用标题信息将多个列组合到一个单元格中

时间:2013-03-07 19:30:42

标签: excel excel-vba vba

我正在尝试在工作表中创建一个单元格,该单元格汇总了该行中的所有数据。我找到了一种方法将所有字段组合到第一列,但我还需要它包含标题名称,它需要忽略空白字段。 (https://stackoverflow.com/a/13074838

我的excel文件有超过50列和5000行,所以我认为这可能是一个宏的工作。关于如何实现这一目标的任何想法?

╔═════════╦══════╦═════╦═══════════╦═══════╗
║ Summary ║ Name ║ Age ║  County   ║  ZIP  ║
╠═════════╬══════╬═════╬═══════════╬═══════╣
║         ║ Sue  ║     ║ Snohomish ║ 98144 ║
║         ║ Bob  ║  36 ║ Pierce    ║ 98335 ║
║         ║ Pat  ║  32 ║ Spokane   ║       ║
║         ║ Jim  ║  40 ║ King      ║ 98101 ║
╚═════════╩══════╩═════╩═══════════╩═══════╝


Cell A2 would have the following contents:
Name: Sue
County: Snohomish
ZIP: 98144

Cell A3:
Name: Bob
Age: 36
County: Pierce
ZIP 98335

Cell A4:
Name: Pat
Age: 32
County: Spokane

1 个答案:

答案 0 :(得分:1)

您需要的是一个公式:

  1. 使用IF函数测试每个信息单元格是否有数据(我假设您将始终拥有该名称)。
  2. 如果单元格确实如此,则连接回车符(CHAR(10))的ASCII代码的字符表示形式以及该单元格的数据。
  3. 请务必打开公式单元格的换行,否则显示的文本不会显示换行符。
  4. 结果公式如下所示。

     ="Name: " &B1&
       IF(C1="","",CHAR(10)&"Age: "&C1)&
       IF(D1="","",CHAR(10)&"County: "&D1)&
       IF(E1="","",CHAR(10)&"Zip: "&E1)
    

    您可以使用LEN功能将数据(年龄等)缩小并缩进相同数量。