我有一个 Google 表格公式,用于根据操作 ID 求和概率,并且我需要帮助将其转换为在 Excel 中使用。该公式从单元格中检索操作 ID,将它们与操作列表及其相应的概率进行匹配,对概率求和,然后将总和除以非零操作 ID 的计数。 这是我在 Google 表格中使用的公式:
=IFERROR(SUM((IFERROR(QUERY(Totals!$B$463:$E$492, "SELECT E WHERE B MATCHES '" & AI5 & "'"), 0)), (IFERROR(QUERY(Totals!$B$8:$E, "SELECT E WHERE B MATCHES '" & TEXTJOIN("|", TRUE, SPLIT(AG5, ", ")) & "'"), 0))), "") / (SUM(COUNTIF(SPLIT(AG5, ", "), "\<\>0"), (COUNTIF(AI5, "\<\>0"))))
我需要什么: 我想在 Excel 中调整这个公式,其中:
U5 包含以逗号分隔的操作 ID 列表(例如,“14, 281, 286, 753, 0, 0, 0, 0”)。 总计表在 B 列(总计!B8:B807)中包含操作 ID,在 E 列(总计!E8:E807)中包含相应的概率。 我需要对 U5 中的操作 ID 对应的概率进行求和(不包括任何零),并将该总和除以非零操作 ID 的数量。 问题: Excel 中不存在来自 Google Sheets 的 TEXTJOIN 和 QUERY。 我不确定如何调整 Excel 的公式以根据操作 ID 求和概率并正确处理零。 Excel版本: 我使用的是 Excel 365(版本 16.89)。
示例数据:
身份证 | ID概率 | 行动 | 概率 |
---|---|---|---|
14 | 0.10 | 14、281、286、288、753、0、0、0、0、0、0、 | (此处为公式/期望结果) |
281 | 0.20 | ||
286 | 0.05 | ||
288 | 0.05 | ||
753 | 0.10 |
提取非零 ID:14、281、286、288、753
查找这些 ID 的概率:14 = 0.10、281 = 0.20、286 = 0.05、288 = 0.05、753 = 0.20
概率总和:0.10 + 0.20 + 0.05 + 0.05 + 0.20 = 0.60
计算非零 ID:5
最终输出:0.60 / 5 = 0.12
我尝试过使用 TEXTSPLIT、MATCH 和 FILTER 等函数,但我仍然面临着将 Google Sheets 的逻辑调整为 Excel 的问题。
我也一直在尝试使用 Chat GPT(它帮助编写谷歌表格的原始公式)来解决这个问题,但没有成功。
=LET(x,TOCOL(VLOOKUP(--TEXTSPLIT(C2,", "),A2:B6,2,),2),SUM(x)/ROWS(x))
这 - 使用您提供的样本 - 结果为
0.1
(因为 753 显示 0.10,而不是 0.20)