Google Sheets 如何从Google Form导出的买家数据中提取各产品最高出价及对应用户
实操解决方法
你之前用VLOOKUP、QUERY匹配失败的原因很简单:Buyers表的产品名和对应出价是横向交替排列的非标准结构,没有形成纵向的一一对应关系,直接查表自然没法得到正确的匹配结果。
按下面的步骤操作,全程只需要在两个位置输入公式,后续Google Form自动提交的新数据也会实时同步更新:
第一步:生成结构化的出价数据源
新建一个工作表,命名为结构化出价数据,在这个表的A2单元格输入以下公式,按回车后就会自动展开全量数据,不需要手动拉单元格填充:=ArrayFormula(IFERROR(SPLIT(FLATTEN(Buyers!B2:B & "|" & Buyers!C2:C & "|" & Buyers!D2:D, Buyers!B2:B & "|" & Buyers!E2:E & "|" & Buyers!F2:F, Buyers!B2:B & "|" & Buyers!G2:G & "|" & Buyers!H2:H), "|"), ""))
这个公式会自动把Buyers表每一行的买家信息、所有横向排列的产品/出价对,拆成三列标准结构:
- 第一列:提交该出价的买家用户名
- 第二列:产品名称
- 第三列:对应的出价金额
如果你的Buyers表有更多列的产品/出价对,只需要在公式里按照相同逻辑,继续追加和列数对应的匹配片段即可,比如新增了Product4和Price4两列,就追加, Buyers!B2:B & "|" & Buyers!I2:I & "|" & Buyers!J2:J到公式的FLATTEN参数里。
第二步:在Bids表匹配最高出价和对应买家
回到Bids工作表,找到第一个产品所在的行(也就是你标注示例的computer产品行),分别在对应单元格输入公式:
- 最高出价单元格:
=MAXIFS('结构化出价数据'!C:C, '结构化出价数据'!B:B, A2) - 对应最高出价的买家单元格:
=INDEX('结构化出价数据'!A:A, MATCH(1, ('结构化出价数据'!B:B=A2)*('结构化出价数据'!C:C=C2), 0))
输入完成后,选中这两个带公式的单元格,把鼠标移到单元格右下角的小方块上,往下拖动填充所有产品行就完成了。
补充说明:如果出现多个买家出了完全一样的最高价,这个公式会自动取最早提交表单的那个买家的名字,符合常规拍卖类出价的统计逻辑。
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

