单元格内换行分隔的所有数字批量乘以1.8的实现求助
Hey Eryk,别慌!我明白你想把单元格里换行分开的每个数字都乘1.8,之前试了数组和拆分没成功对吧?我给你几个实用的方案,分不同场景来:
如果用的是Excel 365/2021(支持动态数组)
直接用这串公式就行,假设目标单元格是A1:=TEXTJOIN(CHAR(10),TRUE,BYROW(TEXTSPLIT(A1,CHAR(10)),LAMBDA(x,x*1.8)))
简单拆解下逻辑:TEXTSPLIT(A1,CHAR(10)):把单元格里的内容按换行符拆分成单个数字的数组BYROW(...,LAMBDA(x,x*1.8)):逐个遍历数组里的元素,完成乘1.8的计算TEXTJOIN(CHAR(10),TRUE,...):把计算后的结果用换行符重新拼接起来,TRUE参数会自动忽略空值,避免出现多余换行
如果是旧版Excel(不支持动态数组)
可以用数组公式(输入完成后记得按Ctrl+Shift+Enter触发数组运算),同样假设目标单元格是A1:=TEXTJOIN(CHAR(10),TRUE,IFERROR(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99))*1.8,""))
这个公式的思路是先把换行符替换成大量空格,再分段提取内容、清理空格后转成数字计算,最后拼接回去,IFERROR能帮你跳过单元格里可能存在的非数字内容如果用的是Google Sheets
公式更简洁,用SPLIT替代Excel的TEXTSPLIT就行:=TEXTJOIN(CHAR(10),TRUE,ARRAYFORMULA(SPLIT(A1,CHAR(10))*1.8))ARRAYFORMULA会自动遍历拆分后的每个数字完成乘法,不需要额外的遍历函数
备注:内容来源于stack exchange,提问作者Eryk

