根据匹配文本x上面的行替换spreedSheet上的文本

时间:2016-06-24 15:29:54

标签: excel vba

美好的一天,这是我在这里的第一篇文章。我试图理解我想解决这个问题的逻辑:

我有一个spreedsheet,其中包含客户的销售情况,每个客户都有不同的名称。每个客户都在其名下有一个日期和右边那天卖出的金额。然后在注册的最后一天之后出现“Total”这个词我需要更改每个“Total”,以便它显示“Total Client A”。 “总客户B”,ETC,根据客户“总计”所属。实施例

  • 客户1
  • DATE ............. Value
  • 2016-05-01 ... $ 2.500
  • 2016-05-02 ... $ 2.350
  • 2016-05-03 ... $ 3.450
  • 总.............. $ 8.300

  • 客户2

  • 日期............价值
  • 2016-05-01 .. $ 2.000
  • 2016年5月2日... $ 2.600
  • 2016年5月3日... $为2.400
  • 总.............. $ 7.000

等等。所以我们的想法是在上面的示例中而不是“Total”,Total Client 1,Total Client 2等。

CLIENT X,可以是任何名称。它不遵循逻辑。唯一不变的是它下面是单元格“DATE”

文件每天都会更改(添加一个新的日期及其相应的销售额和重新处理的总数),我需要每天处理该文件。这个想法是每天让文件说“Total Client x”,(而不仅仅是“Total”)所以我可以将该文件用于我拥有的另一个进程。

非常感谢您的帮助,

2 个答案:

答案 0 :(得分:0)

使用数组公式,您还可以添加额外的标准,以进行调整。

="TOTAL FOR :" & INDEX($A$1:$A13,MAX(IF(NOT(ISNUMBER($A$1:$A13)*($A$1:$A13<>"")),ROW($B$1:$B13)))‌​,1)

答案 1 :(得分:0)

这使用了我最喜欢的一个技巧here

假设您的数据在A列中以A10中的第一个值开始,然后假设您的第一个总数在单元格中,请说="Total " & LOOKUP(2, 1/($A$2:A9="Date"), $A$1:A8) (我只需要一个地址来告诉您它的内容看起来像,你可以在A10中使用以下公式:

A2

然后,您可以将该确切公式复制并粘贴到Excel中的任何其他总单元格中。

基本上,它说如下:

  • 以&#34; Total&#34;
  • 开头
  • 查看单元格LOOKUP(2, 1/($A$2:A9="Date"), ...),直到我正上方的单元格,找到最后一个单词&#34; Date&#34; (LOOKUP(... ,$A$1:A8) - 请参阅上面的链接以解释其工作原理)
  • 查看正上方单元格的值以了解要引入的内容({{1}})。

希望这有道理并做到这一点!