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

如何对比多列数值并返回最大值对应的列名?

解决多列数值对比,返回最大值对应列名的方法

核心思路是把列名和对应数值绑定成键值对结构,这样在排序或筛选最大值时,不会丢失列名与数值的对应关系——这也是你之前用array_sort_asc()没成功的原因:单纯排序数值会剥离掉列名信息。

针对不同工具的具体实现示例

1. SQL(以BigQuery为例)

先构造包含列名和数值的结构体数组,再展开数组并按数值降序排序,取第一个元素的列名:

WITH sample_data AS (
  SELECT 3 AS `Application 1`, 20 AS `Application 2`, 1 AS `Application 3`
)
SELECT
  -- 构造键值对数组,将每列的列名和数值一一对应
  (SELECT key 
   FROM UNNEST(ARRAY<STRUCT<key STRING, value INT64>>[
     ("Application 1", `Application 1`),
     ("Application 2", `Application 2`),
     ("Application 3", `Application 3`)
   ]) 
   ORDER BY value DESC LIMIT 1) AS max_column_name
FROM sample_data

如果是10列的情况,只需要在数组中继续追加对应的("列名", 列值)结构体即可。

2. Excel/Google Sheets

直接用INDEX+MATCH+MAX组合函数,定位最大值所在的列,返回对应的列名:

=INDEX(A1:C1, MATCH(MAX(A2:C2), A2:C2, 0))

这里A1:C1是列名所在行,A2:C2是需要对比的数值行,直接扩展范围到10列即可(比如A1:J1和A2:J2)。

关键逻辑总结

  • 必须保留「列名-数值」的绑定关系,不能单独处理数值;
  • 通过排序取首项或匹配最大值位置的方式,提取对应的列名;
  • 扩展到10列时,只需按相同规则追加列的对应关系,核心逻辑不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:02:36