You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中引用单元格使用COUNTUNIQUEIFS实现双条件统计

问题描述

我有三个工作表:

工作表1:EVENTS(存储活动全部信息)

EVENTTYPESBRANDS
13B1;B2;B3;B7

工作表2:EVENTS AND BRANDS

EVENTBRAND
1B1
1B2
1B3
1B7

工作表3:BRANDS AND TYPE OF BRAND

BRANDTYPE
B11
B22
B33
B71

需求

  1. 在工作表1的TYPES列编写公式,用COUNTUNIQUEIFS逻辑统计工作表3中TYPE列的唯一值数量,仅统计工作表2中与当前行EVENT匹配的BRAND对应的TYPE。
  2. 在工作表1的BRANDS列生成对应活动的所有品牌,支持芯片格式或逗号分隔。单个品牌时我会用BUSCARV([EVENT];SHEET 2;2;FALSE),但多品牌场景不知如何实现。

我试过Stack Overflow上的方案,但该方案未引用动态单元格,直接指定固定值,无法适配我的多品牌多活动场景,因此无效。


解决方案

需求1:统计唯一TYPE数量

在工作表1的TYPES列对应行(如EVENT=1所在的B2单元格),使用以下公式:

=COUNTUNIQUE(FILTER('BRANDS AND TYPE OF BRAND'!$B:$B, 'BRANDS AND TYPE OF BRAND'!$A:$A IN FILTER('EVENTS AND BRANDS'!$B:$B, 'EVENTS AND BRANDS'!$A:$A=A2)))

若你的Google Sheets版本不支持IN运算符,可改用MATCH实现:

=COUNTUNIQUE(FILTER('BRANDS AND TYPE OF BRAND'!$B:$B, ISNUMBER(MATCH('BRANDS AND TYPE OF BRAND'!$A:$A, FILTER('EVENTS AND BRANDS'!$B:$B, 'EVENTS AND BRANDS'!$A:$A=A2), 0))))

公式逻辑:

  1. 内层FILTER:先从工作表2中筛选出与当前行EVENT(A2)匹配的所有品牌
  2. 外层FILTER:基于筛选出的品牌列表,在工作表3中匹配对应的TYPE
  3. COUNTUNIQUE:统计这些TYPE的唯一值数量

需求2:生成活动对应的所有品牌

逗号分隔格式

在工作表1的BRANDS列对应行(如C2单元格),使用TEXTJOIN函数:

=TEXTJOIN(";", TRUE, FILTER('EVENTS AND BRANDS'!$B:$B, 'EVENTS AND BRANDS'!$A:$A=A2))

芯片格式(可点击的标签样式)

  1. 在对应单元格输入公式生成品牌数组:
=TOCOL(FILTER('EVENTS AND BRANDS'!$B:$B, 'EVENTS AND BRANDS'!$A:$A=A2), 1)
  1. 选中该单元格,右键选择「设置单元格格式」→「芯片」,选择合适样式即可

公式逻辑:

  • TEXTJOIN:将筛选出的品牌用指定分隔符(此处为分号;)拼接成字符串,TRUE参数用于忽略空值
  • TOCOL:将筛选结果转换为单列数组,配合芯片格式实现标签化显示

内容的提问来源于stack exchange,提问作者Multimedia LC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:11:09