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

Excel筛选状态下按指定规则将垂直数据转置为水平数据的方法

筛选状态下按规则转置垂直数据的解决方法

方法1:动态数组法(Excel 365/2021及以上版本可用)

如果你的Excel支持动态数组,直接用以下公式一步到位:
假设姓名列是B列,幸运数字列是C列,Cool列是A列(筛选条件为YES),在目标单元格输入:

=TOROW(HSTACK(FILTER(B:B,A:A="YES"),FILTER(C:C,A:A="YES")),,TRUE)

公式逻辑:

  1. FILTER(B:B,A:A="YES") 和 FILTER(C:C,A:A="YES") 分别提取筛选后可见的姓名和幸运数字数据
  2. HSTACK 将两个数组横向并排,形成「姓名、幸运数字」成对的二维结构
  3. TOROW 把二维结构转成一维水平序列,自动忽略空值,最终得到「姓名-幸运数字-姓名-幸运数字……」的顺序

方法2:兼容旧版Excel的INDEX+SUBTOTAL法

如果是不支持动态数组的旧版Excel,按以下步骤操作:

  1. 在要放置转置结果的起始单元格(比如E1)输入姓名提取公式:
    =INDEX(B:B,SUBTOTAL(3,$A$1:A1)+ROW($A$1)-1)
    
  2. 在右侧相邻单元格(F1)输入幸运数字提取公式:
    =INDEX(C:C,SUBTOTAL(3,$A$1:A1)+ROW($A$1)-1)
    
  3. 选中E1:F1单元格,按住填充柄向右拖动,即可按筛选后的可见行顺序,依次交替生成姓名和幸运数字

公式逻辑:

  • SUBTOTAL(3,$A$1:A1) 会计算从A1到当前行的可见单元格数量(参数3代表统计非空单元格,自动忽略筛选隐藏的行)
  • 结合INDEX函数,就能精准定位到筛选后的第N行数据,拖动时范围自动扩展,保证计数准确

注意事项

  • 动态数组公式输入后会自动溢出填充,无需手动拖动;若要指定起始位置,直接在目标单元格输入即可
  • 旧版方法中,公式里的$A$1要锁定起始行,避免拖动时范围偏移
  • 确保Cool列的筛选条件已设置为「YES」,公式会自动识别可见行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:39:14