我试图将一张纸上的错误打印在另一张纸上,但无法弄清楚如何
Posted
技术标签:
【中文标题】我试图将一张纸上的错误打印在另一张纸上,但无法弄清楚如何【英文标题】:im trying to print off the errors in one sheet on another but cant quite figure out how 【发布时间】:2018-03-26 17:21:43 【问题描述】:所以数据很敏感,所以我不能在这里给出链接,但这里是基础
详情
对于我在 atm 遇到问题的数据:
column range = K:QR
row range = 3:98 is where the main data is
row range = 99:196 is filled with function that check for errors in rows 3:98
从 K 开始,各列配对,一个是学生,另一个是导师,文档的目的是考勤。(例如:K3:K98 有学生信息,L3:L98 有导师信息)
在 K99 中我有这个公式
=if(
or(
and(K3 = "MRT", isblank(L3)),
and(K3 = "MST", isblank(L3)),
and(K3 = "RT", isblank(L3)),
and(K3 = "ST", isblank(L3)),
and(istext(L3), isblank(K3))
),
$B3 & " " & $C3,
""
)
这会在单元格 K3 和 L3 中查找错误,然后如果找到一个错误,则会在单元格中打印学生姓名
在 L99 中,除了在发现错误时输出日期而不是名称之外,还有完全相同的公式
我已经复制了 K99 和 L99 并将其粘贴到 K99:QR:196 中,这基本上应该为我需要的文档中的每个单元格对执行此操作(我知道我需要调整我计划稍后处理的范围)
我现在需要做的就是查看 K99:QR:196 并查看我的函数是否发现任何错误,如果是,则获取该信息并将其全部合并到另一张纸上的一行中,删除任何空白单元格,但我似乎无法弄清楚这部分
编辑
我忘了提到 K3:QR98 中的所有内容都是经过数据验证的。学生栏有不同的代码,例如学生是否缺席,或者他们是否有替代导师或类似的东西,而导师单元格只有一个所有导师的下拉列表。因此,如果学生列中旁边的单元格显示他们实际上与某种导师合作,我只需要导师列中的信息。这就是我所做的公式检查学生单元格是否具有表明他们与导师一起工作的那些代码之一,那么该导师列中需要有信息,否则如果学生不与导师一起工作,导师列将为空任何人。它还会检查导师列中是否有信息但学生中是否有信息,以防有人输入数据而忘记输入学生信息而只输入导师
旁注
我只在堆栈溢出上发布过几次,而前一段时间我的范围太广并且得到了很多反对意见,所以如果有任何错误或上下文需要更改以符合发布标准,请告诉我在 cmets 中需要更改什么或如何更改,并做出相应的更改以适应。 (我也尝试为代码放置 4 个空格,但由于某种原因,在 2 个空格之后它会下降)
【问题讨论】:
您可以考虑重新设计。 Google 表格提供了一些不错的“数组”公式,它们可以真正简化这样的事情 - 例如,=FILTER($K$3:$K$98, $L$3:$L$98="", $K$3:$K98<>"")
会将K3:K98
中的所有值打印到单独的行中,其中L3:L98
中有一个空白值,K3:K98
中有一些值.
实际上没有任何实际数据,但它的所有“潜在”数据(我希望明年为我的组织使用)但进一步细分的是:k3:k98 已验证数据与学生发生的事情的代码通常是常规导师的“RT”,但有时他们会进行补课或有不同的导师,并且有不同的代码。在 L3:L98 中,如果学生与导师一起工作,它只是一个可供选择的导师的下拉列表,所以它不会总是被填满
和 K99 和 L99 都检查 K3 和 L3 对以查找错误,如果找到一个,K 打印学生姓名,如果找到一个,L 打印日期,我只是将该功能向下扩展,所以K 和 L 100 都对 K 和 L 4 进行相同的检查,一直到 K 和 L 98,然后重复到 QQ 和 QR 列
【参考方案1】:
JOIN/SPLIT 组合会有所帮助:
=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE(K99:QR196&"?"),"?")))
【讨论】:
以上是关于我试图将一张纸上的错误打印在另一张纸上,但无法弄清楚如何的主要内容,如果未能解决你的问题,请参考以下文章