在Excel中换行

时间:2008-11-04 16:05:23

标签: excel grouping excel-2003

假设有一份报告将费用与输出到excel的调整进行比较,这样每行都有以下字段:

  • 帐号
  • 收费日期
  • 原始商品编号
  • 调整后的项目编号
  • 原始数量
  • 调整数量
  • 原始金额
  • 调整金额
  • 原始发布日期
  • 调整后的发布日期

我需要帮助用户在Excel中创建一个视图,帮助他们发现每条记录中的更改。她想让它以两行显示每一条记录:

Account  |  Date  |  O. Item  |  O. Qty  |  O. Amount  |  O. Post
         |        |  A. Item  |  A. Qty  |  A. Amount  |  A. Post             

Excel中是否包含任何内容以允许您对此类记录进行分组?在这种情况下,VBA不是一个选项。

如果帐户和日期下的单元格重复这些值,那就没关系了,如果这样可以更容易。如果你可以获得某种交替的行效果,有助于划分每条记录(如果必须的话,我可以在vba中自行完成这部分)。

6 个答案:

答案 0 :(得分:2)

这有点棘手,但可行。我现在正在研究这个问题,待命。

好的,这个想法就是这个。

您有以下布局:

/|    A    |    B    |    C    |    D    |    F    |
-+---------+---------+---------+---------+---------+
1| Acc No. |  Data1  |  Data1' |  Data2  |  Data2' |
2|       1 |      10 |      11 |    a    |    b    |
3|       2 |     100 |     108 |    a    |    a    |
4|       3 |      50 |      55 |    f    |    g    |

制作第二张图片:

/|  A  |  B  |    C                        |    D                        |
-+-----+-----+-----------------------------+-----------------------------+
1| A/O | Ref |  Data1                      |  Data2                      |
2|   A |   2 | =INDIRECT("Sheet1!B" & $B2) | =INDIRECT("Sheet1!D" & $B2) |
3|   O |   2 | =INDIRECT("Sheet1!C" & $B3) | =INDIRECT("Sheet1!E" & $B3) |
4|   A |   3 | =INDIRECT("Sheet1!B" & $B4) | =INDIRECT("Sheet1!D" & $B4) |
5|   O |   3 | =INDIRECT("Sheet1!C" & $B5) | =INDIRECT("Sheet1!E" & $B5) |

在我当前的模型中,“A / 0”和“Ref”列是手动的。可能有一种方法可以自动化它们,但我想保持简单。填写下来以覆盖Sheet1中任意长的输入表将起作用。

答案 1 :(得分:1)

一个简单的解决方法可能是使用Conditional Formatting(针对Office 2007的说明):

  1. 突出显示“已调整”列(假设为D列,原始列为C列)
  2. 点击“条件格式”
  3. 点击“新规则...”
  4. 点击最后​​一项“使用公式来确定要格式化的单元格”
  5. 输入C1<> D1
  6. 选择格式样式。
  7. 应用规则,所有不匹配的条目将以您选择的样式突出显示。

答案 2 :(得分:1)

我也用间接做了这个。我在第二张纸上的公式看起来像:

=间接(“来源!A”& INT(行()/ 2)+1)

您将对字母进行硬编码以指示列源,然后计算将自动从正确的行中进行选择。应该尽可能地复制。

答案 3 :(得分:0)

我认为只有编程才有可能(嘿,这是一个与编程相关的网站)。

当VBA不是一个选项时,是否允许使用VB.Net或C#?

答案 4 :(得分:0)

几年前我在VBA中做到了这一点并且效果很好,我想你可以使用C#和Interops做同样的事情吗?

我可以告诉我添加,删除和更改了什么。它最终创建了一个易于理清和过滤的报告。

VBA不是一个选择的原因吗? 还有哪些其他选择?

您也可以使用Excel功能交叉引用数据,但对于不是excel超级用户的人来说,可以非常复杂。 general help in excel formulas

编辑:您需要查找索引偏移量VLookup匹配等功能,这可以通过组合它们来完成。唯一的缺点是公式长度有限制。达到此限制时,将逻辑分成多列或多行。

编辑:您可以在单个工作簿中集成VBA,并保存模板。每次他们想要比较时,他们都会使用这个模板来执行比较。这样就不需要部署了。他们只需要复制文件并使用它。

编辑:Tomalak提出的解决方案可能不起作用,因为添加或删除记录时,我们无法控制这些记录的位置。你需要找到一个关键匹配的行并从那里开始工作。

答案 5 :(得分:0)

条件格式化可以同时执行这两个作业,因为每个单元最多可以有3个条件

  1. 你可以(比方说)使用红色粗体文字突出显示任何不同的细胞,使用这样的验证公式

    例如=(DataA!C8< DataB!C8)

  2. 您可以使用这样的公式(在单元格C8中使用)

    来替换备用行

    例如=(MOD(CELL(“行”,C8),2)= 0)

  3. 会遮挡甚至行。当然,要改为遮蔽奇数行,在公式的末尾使用= 1而不是= 0