在Excel中换行
假设有一个报告将费用与输出为excel的调整进行比较,以便每行都有以下字段:
- 帐号
- 收费date
- 原始项目编号
- 调整项目编号
- 原始数量
- 调整的数量
- 原始金额
- 调整后的金额
- 原始发布date
- 调整后的发布date
我需要帮助用户在Excel中创build一个视图,帮助他们发现每个logging的变化。 她希望它能像这样在两行中显示每条logging:
帐户| date| O. Item | O. Qty | O.金额| O. Post | | A.项目| A.数量| A.金额| 一个post
Excel中是否有内容可以将这样的logging分组? 在这种情况下,VBA不是一个选项。
如果帐户和date中的单元格重复这些值,则可以。 如果你可以得到一些交替的行效果,有助于划分每个logging(如果必须的话,我可以在vba中自行完成)。
这有点棘手,但可行。 我正在研究这个,待命。
好的,这个想法是。
您有以下布局:
/ | 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”和“参考”是手动,在我目前的模型。 可能有办法自动化他们,但我想保持简单。 在Sheet1中填充以覆盖任意长的input表将会起作用。
一个简单的解决方法可能是使用条件格式 (指示Office 2007):
- 突出显示“调整”列(假设是D列,原始列C列)
- 点击“条件格式”
- 点击“新规则…”
- 点击最后一项“美国公式来确定哪些单元格式”
- inputC1 <> D1
- select一种格式化风格。
应用规则,所有不匹配的条目将以您select的样式突出显示。
我也用间接方式做了这个。 我在第二张纸上的公式看起来像这样:
= INDIRECT(“source!A”&INT(ROW()/ 2)+1)
您将硬编码该字母以指示列源,然后计算将自动从正确的行中select。 应该尽可能地复制下来。
我认为这是唯一可能的编程(嘿,这是一个编程相关的网站)。
当VBA不是一个选项时,是否允许使用VB.Net或C#?
条件格式可以同时执行两个任务,因为每个单元最多可以有3个条件
-
你可以(比如说)使用红色粗体文本来突出显示不同的单元格,使用这样的validation公式
例如=(DataA!C8 <> DataB!C8)
-
你可以使用像这样的公式replace行(如单元格C8中所用)
例如=(MOD(CELL(“行”,C8),2)= 0)
这将甚至行阴影。 为了遮蔽奇数行,当然,在公式的结尾使用= 1而不是= 0
几年前,我已经在VBA中完成了这个工作,而且工作得很好,我想你可以在Interop上用C#做同样的事情吗?
我可以告诉添加,删除和更改。 它最终创build一个报告,很容易理清和过滤。
VBA不是一种select的原因吗? 还有什么其他的select?
您也可以使用Excel函数交叉引用数据,但对于不是Excel超级用户的用户而言,这可能相当复杂。 在Excel公式中的一般帮助
编辑:你将需要像查找索引偏移VLookup匹配function,这可以通过组合它们来完成。 唯一的缺点是公式长度有限制。 达到此限制时,将多列或多行的逻辑分开。
编辑:您可以在一个工作簿中整合VBA,并保存模板。 每次他们想比较他们使用这个模板来执行比较。 这种方式不需要部署。 他们只需要复制文件并使用它。
编辑:由Tomalak提出的解决scheme可能无法正常工作,因为当添加或删除logging时,我们无法控制这些logging的位置。 你将需要find一个关键匹配的行,并从那里工作。