用于根据搜索条件输出多个列的代码

时间:2013-12-21 20:00:16

标签: excel vba

我姐姐在工作表上有前五行包含患者信息的工作表,然后列中有整个月的每个日期的标题。她需要非技术操作员来过滤信息,以便只显示当天有约会的记录,以及任何一方的两天。

目前,她手动过滤了她希望删除该日期“空白”日期的列,该日期仅显示当天约会的患者,隐藏其他列以显示该日期,然后打印有关该日期的信息。

自动执行此流程的最佳方法是什么?

我玩了几种不同的方法,例如将其复制到新的表格或自动隐藏数据但我在显示特定日期的字段中没有空白的患者列表时遇到了问题(即 - 他们预约了!)

1 个答案:

答案 0 :(得分:1)

我怀疑这将是一个正确的答案,但可能会给你一些想法 - 并且不适合评论:

  1. 我建议列2,3,4,5,&图6的存储器被存储在别处,并且仅出于当前目这部分是因为我猜测有比任何一个月所需的病人(即细节)多得多。所以一个索引是有用的(比如说只有几个字符,而不是目前大约20-30个字符 - 并且存在错误的风险),但是Name & DOB会起作用。在现有工作表(我称之为Month)中使用此选项可以检索相关月份的ColumnsB:F的相应详细信息。根据它的外观,最好手动输入“Tany M / W CAF Meeting”。
  2. 我建议顶部对齐所有单元格(根据您的数据,可能有助于将一列与另一列匹配)。
  3. 在新工作表中添加Name & DOBB/DC & V detailsContact Detailsdelivery detailsM/W,{{1}等标签第2行中有},OVERDUEoverdueTODAYPENDING。 (我建议不要强调前六个,以免五天与红色,琥珀色,淡蓝色,绿色,深绿色发生冲突。)
  4. 我说第2行,所以在第1行中有空间约会。这可以用(相当可怕的)公式构建,例如:

    pending

  5. 其中手动输入位于=VLOOKUP(WEEKDAY(DATE(O2,O1,I1),3),DofWeek,2,0)&", "&TEXT(DATE(O2,O1,I1),"dd mmmm yyyy")(仅在该月的某一天),月份为I1(仅为月份编号),而年份为O1。意图是只有那三个单元格才能在“额外”工作表上进行调整(三者中只有两个很少)。为了安全起见,这仅允许在仅解锁三个电池之后保护片材。 O2是将DofWeek转换为0等的命名范围。我认为选择的相关日期非常明显非常重要。
    5.在Monday put:

    G4

    并复制到=INDEX(Month!$G$2:$AK$6,MATCH($A4,Month!$A$2:$A$6,0),$I$1-2) 。然后根据需要将所有五个单元格复制下来 6.(可选)为了能够隐藏工作表K4上与5天视图无关的详细信息,您可以添加:

    Month
    =COUNTIF(G4:K4,"<>0")

    并将其复制以适应 7. Row3我故意留空,以便可以过滤身体而不会使小箭头遮挡其他信息(即选择Row3并在应用过滤器之前向下适合)。过滤ColumnL而不是L4(我选择了主体主体的会计格式 - 这样结果是'离散'破折号而不是- s。

    此问题包括:

    1. 需要在适当时更改月份编号。这可以从计算机的时钟驱动,但我建议最好不要(例如灵活性)。请注意,诸如13之类的月份可以正常工作,但如果未更新年份单元格,则可能会造成混淆。
    2. 也许主要的问题是'{1}}的“下降”程度有多大的不确定性。然而,许多细胞预装了公式,总有一个月的风险是不够的。但这可以通过检查来比较两张纸上的条目数。
    3. 根据每个月一个月,不会在每个月的开始和结束时给出5天的观点(但会显示警告5天的时间段没有完全填充相关数据)。这可以通过复制每个月的最后两天来解决,就好像下一个月的开始一样。
    4. 不使用INDEX / MATCH传输格式。
    5. 我假设在每个月末,工作表0将被归档,然后清除数据,准备好在下个月。所有数据输入都在表as far as required中,但希望B:F中的数据可以通过索引字段从其他地方收集。