用于确定Y个单元格中的X是否具有特定值的公式(Google电子表格)

问题描述 投票:0回答:2

我想在“参加的时间数”之后添加一列,如果学生已获得奖励,则将显示“ Y”或“ N”。获得奖励的唯一标准是它们在任何8周中都出现6个

示例:

NOTE: Checkmark = "P" & No checkmark = "A"

  • 如果学生来了5周(string =“ PPPPP”),错过了3(string =“ AAA”),并且然后是第9周(string =“ P”),他们没有得到奖励(总字符串= PPPPPAAAP)。
  • 如果学生来了2周(string =“ PP”),错过了1周(string =“ A”),来了4周(string =“ PPPP”) ,然后再次错过(string =“ A”)他们将获得奖励(总字符串= PPAPPPPA)

这必须是一个可以预测可能发生的任何排列的公式,我似乎无法弄清楚。有提示吗?

Attendance Sheet

google-sheets excel-formula formula permutation google-sheets-formula
2个回答
1
投票

[One solution将等于substitute全部为P,然后计算substitute之前和之后的长度,并得到两者的差。

=SUMPRODUCT(LEN(A1:A7)-LEN(SUBSTITUTE(A1:A7,"p","")))

或单个单元格

=SUMPRODUCT(LEN(A11)-LEN(SUBSTITUTE(A11,"p","")))

使用此方法,无需考虑每个排列,因为它只计算您插入的所有出现的字符。

如果需要检查的字符串在一个单元格中,则可以将范围切换到单个单元格。

enter image description here

如果单元格仅包含“ P”或“ A”,那么即使是COUNTIF(A1:A7;"P")也足够了


0
投票

如果我从字面上回答您的问题,我认为您需要一个偏移量公式来找到包含最多出勤人数的8个连续单元的块:

=MAX(COUNTIF(OFFSET(A1,0,COLUMN(A1:INDEX(A1:Q1,COLUMNS(A1:Q1)-7))-1,1,8),"P"))

必须使用Ctrl Shift Enter

作为数组公式输入

以下两个学生都缺席大部分学期,但是第二个学生从第3周开始的八周内确实有六次出勤。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.