我有一个数据列表,我需要根据描述将其放入不同的帐户,但我无法弄清楚如何自动输入正确的代码。
在图片中,column A
包含交易类型,例如 OSPX224 , OSPX229 等。然后,这些交易类型中的每个交易都有一个列表,每种类型的收费总额。我希望根据该部分的 OSPX 编号自动为每个黄色单元格输入一个数字。例如,D1402
应该是 OSPX223 进入的帐户,D1419
应该是 OSPX224 进入的帐户。
我可以在不同的标签上创建一个参考列表,其中包含 OSPX 数字和每个标识的帐号。
每个交易清单的长度不同,因此有时 OSPX 数字是收费总额以上的行,有时是3页以上。每个报告的交易数量也会发生变化。
Don Pete的回答非常有帮助,正是我所要求的,但现在我遇到了一个新问题。在整个数据的随机点,有标题部分。如例2中所示,"充电总数"之后的行。是1而不是下一个ospx数字,这意味着绿色列不起作用。关于如何在充电总行之后找到下一个ospx数而不仅仅是下一行的任何想法?
另外,有没有办法让#34; 0"列D中没有任何内容,而不是" #N / A"
答案 0 :(得分:0)
如果模式保持不变并且您的新范围在总计行之后立即开始,则可以使用另外两行Index ()
来完成此操作。 E列将在Column A
中标记总计,并从列的开头计算每个外观。 Column F
将返回相应的 OPSX 数字,该数字是前一个总计行数下方的单元格中的值,无论它们之间有多少行。以前的 。最后,您可以使用Index(Match( ))
返回相应的帐户。见图。彩色单元格包含可以在行内复制的公式。您需要在顶部添加一个总计行(此处为1400)并在Row E
中输入起始值(例如1;灰色单元格)。
公式:
D1418 =INDEX($J$6:$J$10,MATCH(F20,$I$6:$I$10,0))
E1416 =IF(ISERROR(FIND("Total",A1416)),"",COUNT($E$1400:E1415)+1)
F1414 =IFERROR(INDEX($A$1400:A1414,MATCH(E1414-1,$E$1400:E1414,0)+1),"")
编辑:
关于标题: 费用总额与所需的OSPX号码之间总是有2行? OSPX号码总是有7个字符吗?然后你可以使用这个公式来获得OSPX:=if(A1457="Charge Total"; left(A1444;7);"")
。 Left()
将从文本字符串中提取n个字符,从左开始。
关于#N / A:您可以使用iferrror()来掩盖错误,就像我在绿色公式中所做的那样。请注意,在发生意外事件时,屏蔽错误可能会导致损坏结果。