Excel中查找相同客户、靠的最近的那行、剩余数量大于0,然后将本行的注射时间等于那一行的注射时间

如图,有的客户在配药时会将一个疗程的药配好,他就有了“剩余数量”的药,他的“下次换药时间”就等于本次的“注射时间”【如第3行的甲】。当他下次再来注射时【如第6行的甲】,他这次的“注射时间”就等于上次【第3行】的“注射时间”(也等于【第3行】的“下次的换药时间”。)【如第6行的甲,他来的“注射时间”等于第3行的“注射时间”,或“下次换药时间”】【第9行的甲的“注射时间”等也于第3行或第6行的“下次换药时间”】。

如果第一次来,或者上次没有“剩余数量”的药,他的“注射时间”就等于B列的现在时间。如果他“剩余数量”的药用完了,没有了,当他再来时,“注射时间”仍等于B列的现在时间,【如第12行的甲】。如果下次再来看配药,又有“剩余数量”的药,当他下次再来时,他的“注射时间”得等于最近一次有“剩余数量”的“下次换药时间”【如16、17行的甲,他的新的“注射时间”等于14行“注射时间‘,而不是上面几行的“注射时间”】请问,我的“注射时间”应当用什么公式,谢谢问题补充:

其实我要的只是当客户来了后,打开表格输入客户名称,如果他上次是按疗程配药的,他的这次“注射时间”就等于他当时下次换药时间。值到他这个疗程没有剩余数量。如果他是新的客户,注射时间就等于现在时间。如果他是老客户,但他上次的疗程用完了,他再来也当新客户处理,他的注射时间还是B列现在时间,当他下次再配一疗程的药的时候,他的下次的注射时间等于新的配药疗程时间,而不是以前的时间

此表中用函数来实现的话需要增加辅助列,暂定为F列,在F2中粘贴以下公式
=A2&COUNTIF(A$2:A2,A2)
在C2中粘贴以下公式
=IF(AND(D2>0,E2>0),D2,IF(COUNTIF(A$1:A1,A2)=0,B2,IF(INDEX(E$1:E1,MATCH(A2&COUNTIF(A$1:A1,A2),F$1:F1,0),1)>0,INDEX(C$1:C1,MATCH(A2&COUNTIF(A$1:A1,A2),F$1:F1,0),1),B2)))
分别下拉复制C2和F2的公式到下方单元格即可。除此两列外,其它数据均需手动完成。
F列可在设置完公式后选择隐藏整列或将文字前景色设置为白色。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-21
你的两个问题。
1. 筛选完全可以。 请确认你的值是否为数值,实在不行的话用函数=value() 转化成数字。
2. 这个是排序的基本功能,就是要选择两列,即点选excel每一列最上面,等鼠标变成黑色向下箭头的时候选择两列,排序一列的时候另一列可以跟着变化。excel的排序最多可以下两个条件,即先按照A列排序,再按照B列排序。