Excel 公式 - 有没有办法在更改为下一个连续查询单元格之前对第 n 个单元格的同一查询单元格执行 if 语句

CMS72

我有一个具有以下数据集 A 的 sheet1

ColumnA:    ColumnB:      ColumnC:      ColumnD:

Row1:        June 1        June 2        June 3
Row2:
Row3: A      Apple         Apple         Orange
Row4: B      Orange        Orange        Orange
Row5: C      Orange        Apple         Orange
Row6: D      Pear          Apple         Pear

在该表中,我有下表

       Consumed fruits
        **June 1**             **June 2**            **June 3**
     Apple Orange Pear      Apple Orange Pear     Apple Orange Pear

A    True                   True                        True
B          True                   True                  True
C          True             True                        True
D                 True      True                               True

对于每个单元格,我添加以下与 datasetA 有关的代码

6 月 1 日,A,苹果

=IF(B3="Apple","True","")

6 月 1 日,A,橙色

=IF(B3="Orange","True","")

6 月 1 日,A,梨

=IF(B3="Pear","True","")

但是当我将公式拖到下一个日期(6 月 2 日,A,Apple)时,它会更改为

=IF(B6="Apple","True","")

代替

=IF(B4="Apple","True","")

无论如何,在接下来的 3 个公式中仅增加一个查询单元格之前,是否要保持 3 个公式的查询单元格不变?

变异

这是公式。它在下面屏幕截图的 B11 中,并从那里复制到 B11:J14。

=IF(INDEX(Table1,MATCH($A11,Table1[Column1],0),MATCH(TEXT(INDEX($9:$9,0,COLUMN()-MOD(COLUMN()-2,3)),"mmm-dd"),Table1[#Headers],0))=B$10,TRUE,"")

在此处输入图片说明

B16:B20 中的公式是最终公式的组成部分。我用它们进行测试。它们可能会帮助您了解公式的作用。这里有一些更多的帮助。

INDEX() 函数的基本语法是INDEX([Range address], [Row number], [Column number]). 范围可以是命名范围,例如“Table1”。行号和列号可以是硬数字,但由我的公式中的 MATCH() 函数提供。

Excel 将日期(例如 )存储Jun-01为数字,从 1899 年 12 月 30 日开始计算天数。但是,在表头中,Excel 将日期转换为字符串。因此,单元格 B1 的值是“Jun-01”,正如您所看到的,但是单元格 B9 的值是 37043,即 2001 年 6 月 1 日的数字。年份由 Excel 提供,因为我没有输入任何年份(我原以为它会提供当前的 2020 年,但这在这里无关紧要)。为了在表头中找到日期,B9 中的实际日期被转换为一个字符串TEXT(B9,"mmm-dd")忽略年份的地方。该字符串由 MATCH 函数用于使用第 9 行中的值查找正确的表列作为示例。当然,如果您在第 9 行中没有实际日期但字符串,我的公式将不起作用,因为不需要转换。把它拿出来。

所以,第 9 行对我的公式很重要。查找$9:$9并将此引用更改为您在输出表中包含日期的行(我图片中的 A9:J14)。如果您的输出表是一个真实的表,则工作表引用将起作用,但您可能希望将其更改为类似Table2[#Headers]. 如果您这样做,可能还需要对列进行一些调整。

将公式=MOD(COLUMN()-2,3)放在空白行中并复制到右侧。如果您将原件粘贴在 B 列中,它将产生一系列 0、1 和 2 的重复。这些用于始终指代一组 3 的第一列,例如COLUMN()-0COLUMN()- 1COLUMN()-2在此公式中,COLUMN()-2特定于工作表 B 列。该公式在 B 列中生成 0。更改此数字,以便公式在包含日期的列中生成零。使用此组件进行测试,并在您知道它按应有的方式工作后将更改执行到大公式。请注意,如果日期在合并单元格中,Excel 会将其存储在合并区域的第一个单元格中。就 Excel 而言,其他单元格是空白的。

我希望你能够掌握这个公式。祝你好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章