Excel中如何按整数部分提取对应最大小数数值?
解决Excel中按整数分组取最大小数数值并用于数据透视表筛选的问题
我完全懂你的需求——把数据按整数部分分组,每组只留下小数部分最大的那个值,还要用这个规则让数据透视表只保留这些最大值。下面给你两种实用的方法,从公式标记到数据透视表设置全给你捋清楚:
方法一:用辅助列标记目标行(适合所有Excel版本)
假设你的数值数据在A列,从A2开始(A1是表头),咱们加个辅助列(比如B列)来标记哪些行是对应整数组的最大值:
- 在B2单元格输入公式:
=A2=MAX(IF(INT($A$2:$A$5)=INT(A2),$A$2:$A$5,""))- 注意:如果你用的是Excel 2019及更早版本,输入完公式后要按 Ctrl+Shift+Enter 确认(这是数组公式的要求);Excel 365/2021直接回车就行。
- 把B2的公式下拉到所有数据行,符合条件的行会显示
TRUE(比如你例子里的10.4和11.3所在行)。 - 之后你可以直接筛选B列的
TRUE,得到目标数据;如果要用于数据透视表,直接基于筛选后的数据源创建透视表,或者在透视表中添加B列作为筛选条件,只勾选TRUE即可。
方法二:直接在数据透视表中实现(更高效,适合批量处理)
如果不想加辅助列,咱们可以直接在透视表中设置分组和汇总:
- 先给源数据加个“整数部分”辅助列(比如C列),在C2输入
=INT(A2),下拉填充,表头设为“整数部分”。 - 插入数据透视表,把“整数部分”拖到行区域,把原始数值列(A列)拖到值区域。
- 点击值区域的字段(比如“求和项:A”),选择「值字段设置」,把汇总方式改成最大值。这时候透视表会直接显示每个整数对应的最大数值(比如10对应10.4,11对应11.3)。
- 如果你的需求是要在透视表中保留原始数据行,只筛选出每组的最大值,那可以点击行区域中数值字段的下拉菜单,选择「值筛选」>「等于」,然后选择对应的最大值字段,设置为“等于最大值”即可。
进阶:Excel 365动态数组直接提取结果
如果你用的是Excel 365,不用辅助列也能直接提取所有整数组的最大值结果:
在空白单元格输入公式:
=UNIQUE(HSTACK(INT(A2:A5),MAXIFS(A2:A5,INT(A2:A5),INT(A2:A5))))
这个公式会自动生成两列数据:第一列是整数部分,第二列是对应的最大数值,直接得到你要的结果集。
内容的提问来源于stack exchange,提问作者Maxim Srour




