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

如何用单公式或列首公式生成书籍与唯一子标题列表

需求说明

现有A2:B9范围的书籍与子标题数据,需生成去重且重复书籍名称置空的列表,以下是具体内容:

原始数据

书籍(BOOK)子标题(SUBTITLE)
BRELE
BRINT
BRPI
BRINT
BRPI
EFELE
EFINT
EFINT

期望输出格式

书籍(BOOK)子标题(SUBTITLE)
BRELE
INT
PI
EFELE
INT

现有实现方法

方法一

  • D2单元格公式:
    =IF(COUNTIFS($A$2:$A$9, $A2, $B$2:$B$9, $B2)=1, $A2, "")
    
  • E2单元格公式:
    =IF(COUNTIFS($A$2:$A2, $A2, $B2:$B2, $B2)=1, $B2, "")
    
  • G2单元格公式:
    =FILTER(D2:E27,E2:E27<>"")
    

方法二

  • D2单元格公式:
    =SORT(UNIQUE(A2:B10),1,TRUE,2,TRUE)
    
  • G2单元格公式:
    =ARRAYFORMULA(IF(D2:D7=D1:D6, "", D2:D7))
    
  • H2单元格公式:
    =ARRAYFORMULA(E2:E7)
    

优化方案

方案1:单公式生成完整结果(Google Sheets适用)

在任意空白单元格输入以下公式,直接输出符合要求的表格:

=LET(
    unique_data, SORT(UNIQUE(A2:B9), 1, TRUE, 2, TRUE),
    book_col, INDEX(unique_data,,1),
    sub_col, INDEX(unique_data,,2),
    cleaned_book, ARRAYFORMULA(IF(book_col=OFFSET(book_col,-1,0),"",book_col)),
    HSTACK(cleaned_book, sub_col)
)

逻辑说明:

  1. 提取去重并排序的书籍-子标题组合
  2. 拆分出书籍列与子标题列
  3. 对比当前行与上一行的书籍值,重复则置空
  4. 合并处理后的两列得到最终结果

方案2:分列单公式实现(Google Sheets/Excel 365适用)

  • 书籍列(如D2):
    =ARRAYFORMULA(LET(
        unique_books, INDEX(SORT(UNIQUE(A2:B9)),,1),
        IF(unique_books=VSTACK("", unique_books), "", unique_books)
    ))
    
  • 子标题列(如E2):
    =INDEX(SORT(UNIQUE(A2:B9)),,2)
    

逻辑说明:

  1. 书籍列通过在去重数据前添加空值,对比相邻行书籍名称,重复则置空
  2. 子标题列直接提取去重排序后的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 12:00:18