如何在Google Sheet中检测列内首次0到1变化并对应标记T/F
实现方案
方案1:仅识别D列0转1的首次位置(无需识别颜色/无VBA)
如果你的分组规则本身就是「连续0段之后首次出现1」,不需要额外识别单元格颜色,直接用通用Excel公式即可实现:
- 假设你的数据从第2行开始(第1行为表头),点击F2单元格
- 输入公式:
=IF(AND(D2=1,D1=0),"T","F")
- 鼠标放在F2单元格右下角,下拉填充到所有数据行即可。
如果首行数据(第2行)D列就是1,可将公式调整为兼容首行的版本:
=IF(AND(D2=1,OR(ROW()=2,D1=0)),"T","F")
方案2:按单元格颜色分组识别首个1(需简单VBA)
如果同一个颜色分组内可能存在多次0转1的情况,需要严格按颜色分组取首个1,按如下步骤操作:
- 按
Alt+F11打开VBA编辑器,右键点击当前工作簿名称→【插入】→【模块】 - 在弹出的代码编辑框中粘贴如下内容:
Function GetCellColor(rng As Range) As Long ' 获取单元格填充颜色编码 GetCellColor = rng.Interior.Color End Function
- 回到Excel表格,新增辅助列E,在E2输入公式
=GetCellColor(D2),下拉填充到所有行,获取每行D列单元格的颜色编码 - 在F2输入如下公式,下拉填充即可:
=IF(AND(D2=1,COUNTIFS($E$1:E1,E2,$D$1:D1,1)=0),"T","F")
注意事项
- 如果你有明确的分组标识列(比如C列存储分组名称),不需要使用VBA获取颜色,把公式里的E列匹配条件替换成分组标识列即可
- 使用VBA的文件需要另存为
.xlsm格式才能正常运行宏
内容的提问来源于stack exchange,提问作者weizer
相关产品推荐
相关产品推荐

