You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel中如何按整数部分提取对应最大小数数值?

解决Excel中按整数分组取最大小数数值并用于数据透视表筛选的问题

我完全懂你的需求——把数据按整数部分分组,每组只留下小数部分最大的那个值,还要用这个规则让数据透视表只保留这些最大值。下面给你两种实用的方法,从公式标记到数据透视表设置全给你捋清楚:

方法一:用辅助列标记目标行(适合所有Excel版本)

假设你的数值数据在A列,从A2开始(A1是表头),咱们加个辅助列(比如B列)来标记哪些行是对应整数组的最大值:

  1. 在B2单元格输入公式:
    =A2=MAX(IF(INT($A$2:$A$5)=INT(A2),$A$2:$A$5,""))
    
    • 注意:如果你用的是Excel 2019及更早版本,输入完公式后要按 Ctrl+Shift+Enter 确认(这是数组公式的要求);Excel 365/2021直接回车就行。
  2. 把B2的公式下拉到所有数据行,符合条件的行会显示TRUE(比如你例子里的10.4和11.3所在行)。
  3. 之后你可以直接筛选B列的TRUE,得到目标数据;如果要用于数据透视表,直接基于筛选后的数据源创建透视表,或者在透视表中添加B列作为筛选条件,只勾选TRUE即可。

方法二:直接在数据透视表中实现(更高效,适合批量处理)

如果不想加辅助列,咱们可以直接在透视表中设置分组和汇总:

  1. 先给源数据加个“整数部分”辅助列(比如C列),在C2输入=INT(A2),下拉填充,表头设为“整数部分”。
  2. 插入数据透视表,把“整数部分”拖到区域,把原始数值列(A列)拖到区域。
  3. 点击值区域的字段(比如“求和项:A”),选择「值字段设置」,把汇总方式改成最大值。这时候透视表会直接显示每个整数对应的最大数值(比如10对应10.4,11对应11.3)。
  4. 如果你的需求是要在透视表中保留原始数据行,只筛选出每组的最大值,那可以点击行区域中数值字段的下拉菜单,选择「值筛选」>「等于」,然后选择对应的最大值字段,设置为“等于最大值”即可。

进阶:Excel 365动态数组直接提取结果

如果你用的是Excel 365,不用辅助列也能直接提取所有整数组的最大值结果:
在空白单元格输入公式:

=UNIQUE(HSTACK(INT(A2:A5),MAXIFS(A2:A5,INT(A2:A5),INT(A2:A5))))

这个公式会自动生成两列数据:第一列是整数部分,第二列是对应的最大数值,直接得到你要的结果集。

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

火山引擎 最新活动