excel - 重复值 n 次,其中 n 也可以是 0.5

标签 excel excel-formula excel-2013 let excel-lambda

我在这里看到以下关于重复值的问题: List number of lessons including half lessons based on Number of lessons and lesson name

这个问题需要较旧的 Excel 版本,我喜欢问题陈述,并且喜欢搜索包含新 Excel 公式的解决方案。

我们有以下数据:

<表类=“s-表”> <标题> 一个 B <正文> 1 1 w 2 5 e 3 4.5 o 4 2.5 获胜 5 1.5 pp

这个想法是将 B 列的值重复 A 列中提到的次数。 挑战在于 A 列还可能包含非整数(仅 0.5 -值)。 如果 0.5使用 -value 时,它​​应该重复 B 列中的值 A 中的整数个数并显示 0.5 文本值与 0.5 堆叠在一起以及下一个文本值。

在这种情况下,预期结果是:

<表类=“s-表”> <标题> 预计 <正文> w e e e e e o o o o 0.5 度,0.5 胜 获胜 获胜 pp 0.5 个百分点

我设法在 Office 365 中获得有效的解决方案:

=LET(
    data,A1:B5,
        A,INDEX(data,,1),
        B,INDEX(data,,2),       
            s,SCAN(0,A,LAMBDA(a,b,a+b)),
            si,INT(s),
            sr,ROUNDUP(s,0),
            sm,SEQUENCE(MAX(sr)),
                mr,XMATCH(sm,sr,1),
                mi,XMATCH(sm,si,1),
IFERROR(
    IF(mr=mi,
        INDEX(B,mr,),
        "0.5 "&INDEX(B,mr,)&", 0.5 "&INDEX(B,mi)),
    "0.5 "&INDEX(B,mr,)))

托尼使用 FILTERXML 得到了一个非常接近原始问题的答案: =FILTERXML(REPLACE(CONCAT(REPT("</c><c>" & B2:B6,FLOOR(A2:A6,1)) & IF(A2:A6-INT(A2:A6)>0,"</c><c>" & A2:A6-INT(A2:A6) & B2:B6,"")),2,2,"p")&"</c></p>","//c")

这可以在 Excel 2013 中实现吗?

最佳答案

我确实已经不再接触以前版本的 Excel 中这些令人畏惧的公式了。因此,不幸的是 CONCAT() 不可用。不管怎样,我认为以下方法可能有效:

enter image description here

C2 中的公式:

=IF(COUNTIF(C$1:C1,INDEX(B$1:B$5,IFERROR(MATCH(ROW(A1)-1,MMULT(IF(ROW(A$1:A$5)>=TRANSPOSE(ROW(A$1:A$5))=TRUE,1,0),ROUND(A$1:A$5,0)))+1,1)))+0.5=INDEX(A$1:A$5,MATCH(INDEX(B$1:B$5,IFERROR(MATCH(ROW(A1)-1,MMULT(IF(ROW(A$1:A$5)>=TRANSPOSE(ROW(A$1:A$5))=TRUE,1,0),ROUND(A$1:A$5,0)))+1,1)),B$1:B$5,0)),"0.5 ","")&INDEX(B$1:B$5,IFERROR(MATCH(ROW(A1)-1,MMULT(IF(ROW(A$1:A$5)>=TRANSPOSE(ROW(A$1:A$5))=TRUE,1,0),ROUND(A$1:A$5,0)))+1,1))

显然上面是数组输入的公式,需要往下拖。


对于 ms365 用户,请尝试:

=DROP(REDUCE(0,REPT(B1:B5&"|",A1:A5)&REPT("0.5 "&B1:B5,MOD(A1:A5,1)>0),LAMBDA(a,b,VSTACK(a,TEXTSPLIT(b,,"|",1)))),1)

基于运行REDUCE()时堆栈输出的小技巧。请参阅here

关于excel - 重复值 n 次,其中 n 也可以是 0.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74169638/

相关文章:

excel - EPPlus 条形图条在 Excel 2013 中不显示负值的颜色,但在 Excel 2007 中工作正常

vba - Excel 2013 中的 VB6 提取

vba - 从 SharePoint 网站打开 Excel 文件

excel - Microsoft Excel 保存文件时使用什么字符集?

excel-formula - 本月剩余工作日数

excel - 如何在 PowerShell 脚本后停止 Excel 进程在后台运行?

Vba:显示带点而不是逗号的小数

python - 使用groupby重新格式化excel数据并在python中的数据框中添加空行

excel - 自动扩大Excel数组公式的范围(无需宏)

vba - 将 mmyy 转换为可用日期