我有两个包含信息的Google表格(单独的文档),我们称它们为Master
和Source
。在Source
中,我有一个不确定的单元格范围,这些单元格按日期排序,需要在Master
中显示。 Master
旨在链接到所有各个Source
图纸,在正常操作中,我将拥有多个此类链接,因此我可以查看有关在[[ C0]。 Source
包含一个日期范围,该日期范围从Master
内的日期范围开始和结束(以适应其他Master
表中的其他日期范围)。
我的目标是创建一个单个单元格公式,该公式可以针对需要在Source
中查看的每个Source
复制并粘贴,以将Source
的日期范围前后的列中的单元格填充为字符串“ No Class”以及与日期范围Master
相匹配的所有单元格将简单地是对Source
中的匹配单元格的复制/引用。这是我想出的公式:
Source
Source
[令人惊讶的是,它工作得很好,除了一个主要缺点:=ARRAYFORMULA(if({A1:Z1;A1:Z1;A1:Z1;A1:Z1;A1:Z1}<importrange(Link!B4,"Source!A1"),"No Class",if({A1:Z1;A1:Z1;A1:Z1;A1:Z1;A1:Z1}>Link!N4,"No Class",importrange(Link!B4,"Source!A1:Z99"))))
的值数组相对于公式所在的单元格-又名,Link!N4 = Start Date
Link!B4 = hyperlink to the google sheet `Source`
的范围从importrange
开始而不是开始在与Source
具有相同日期的第一列中。
这是Master!A1
中我的公式结果的Source!A1
。 *编辑:screenshot具有条件格式,以使字体颜色与填充色匹配,因此在此屏幕截图中看不到它,但是它们是深灰色单元格。
还有Master
,这次是我要查看的No Class
。
我意识到这种方法可能不是唯一的方法(或者可能根本无法工作),但是每次尝试其他操作时,总会遇到相同的问题:如何动态地在第一列中启动another screenshot是否使用第一个单元格中的公式匹配Source
中的日期?
importrange
Source
这首先通过检查iferror起作用(但是我会再说)。>>然后,如果与公式在同一列中的日期小于开始日期,则该列将填充“ No Class”(隐藏开始日期之前的日期)
- ELSE如果与公式在同一列中的日期与
=iferror(if(importrange(Link!$B4,"Source!A1")>A2,{"No Class";"No Class";"No Class";"No Class";"No Class"},if(importrange(Link!$B4,address(1,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE,"Source"))=A2,importrange(Link!$B4,address(2,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE,"Source")&":"&address(5,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE)),"No Class")),{"No Class";"No Class";"No Class";"No Class";"No Class"})
列中的日期相同(由距开始日期的列数偏移),则用[ C0](又称一次填充一列,而不是一次导入整个范围)。- (返回iferror)结束日期之后的所有列都会返回错误-因此iferror将这些列填充为“无类”