xii*_*iii 0 excel sequence excel-formula powerquery
有2列数据:
\na 2\nb 3\nc 1\nRun Code Online (Sandbox Code Playgroud)\n结果:
\nX01a\nX02a\nX01b\nX02b\nX03b\nX01c\nRun Code Online (Sandbox Code Playgroud)\n在 Google Sheets 中我使用以下公式:
\n=tocol(map(A2:A;B2:B;lambda(a;b;if(counta({a\\b})<>2;;index("X"&text(sequence(1;b);"00")&a&"|"&b))));1)\nRun Code Online (Sandbox Code Playgroud)\n在 Excel 中,此公式给出错误:#CALC!错误(嵌套数组)
\n如何在 Excel 中执行此操作?
\n\n我不明白如何根据我的目的调整这个公式。
\n=LET(Data,A2:A5,Repeats,B2:B5,\n Both,HSTACK(Data,Repeats),Filtered,FILTER(Both,Repeats>0),\n dData,TAKE(Filtered,,1),dStacked,VSTACK(dData,""),\n rData,TAKE(Filtered,,-1),rSequence,SEQUENCE(SUM(rData)),\n rStacked,VSTACK(0,rData),rScanned,SCAN(1,rStacked,LAMBDA(a,b,a+b)),\n rIndexes,MATCH(rSequence,rScanned),\nResult,INDEX(dStacked,rIndexes),Result)\nRun Code Online (Sandbox Code Playgroud)\n该公式将返回超过 250k 个结果。我希望它没有挂断。:)
\n使用额外的列找到答案。是否有非 VBA Excel 溢出公式来创建和处理数组数组?
\n如何在没有额外列的情况下获得结果?\n所有建议的方法都返回:
\na\na\nb\nb\nb\nc\nRun Code Online (Sandbox Code Playgroud)\n我需要一个带有连续数字的结果。
\n1a\n2a\n1b\n2b\n3b\n1c\nRun Code Online (Sandbox Code Playgroud)\n
使用以下公式尝试MAKEARRAY()
\n\n\xe2\x80\xa2 单元格中使用的公式D1
\n=LET(\n \xce\xb1, A1:A3,\n \xcf\x86, B1:B3,\n TOCOL(MAKEARRAY(ROWS(\xce\xb1),MAX(\xcf\x86),LAMBDA(\xce\xb4,\xce\xb5,\n IF(\xce\xb5<=INDEX(\xcf\x86,\xce\xb4),TEXT(\xce\xb5,"X00")&INDEX(\xce\xb1,\xce\xb4),p))),3))\nRun Code Online (Sandbox Code Playgroud)\n替代方法,但请注意由于使用ARRAYTOTEXT()有字符限制:
\n\n\xe2\x80\xa2 单元格中使用的公式D1
\n=TEXTSPLIT(ARRAYTOTEXT(MAP(A1:A3,B1:B3,LAMBDA(\xce\xb1,\xcf\x86,ARRAYTOTEXT(TEXT(SEQUENCE(,\xcf\x86),"X00")&\xce\xb1)))),,", ")\nRun Code Online (Sandbox Code Playgroud)\n另外,在给定的链接中,确实有一个使用辅助列的解决方案,但它可以通过对JvdV提出的公式进行一些微调来完成。
\n\n\xe2\x80\xa2 单元格中使用的公式D1
\n=DROP(REDUCE("",A1:A3&"|"&B1:B3,LAMBDA(a,b,\n LET(x,TEXTBEFORE(b,"|"),y,--TEXTAFTER(b,"|"),\n VSTACK(a,TEXT(SEQUENCE(y),"X00")&INDEX(x,SEQUENCE(y,,,0)))))),1)\nRun Code Online (Sandbox Code Playgroud)\n参考帖子链接:是否有非 VBA Excel 溢出公式来创建和处理数组数组?
\n使用 可以快速轻松地完成此操作POWER QUERY。要使用上述过程实现此目的,请使用POWER QUERYwindow遵循以下简单步骤UI遵循以下简单步骤:
Table1let\n Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],\n Create_Sequence = Table.AddColumn(Source, "Custom", each {1..[Column2]}),\n Expand_To_NewRows = Table.ExpandListColumn(Create_Sequence, "Custom"),\n Padding = Table.AddColumn(Expand_To_NewRows, "Output", each "X" & Text.PadStart(Text.From([Custom]),2,"0") & [Column1]),\n Remove_Unwanted_Cols = Table.SelectColumns(Padding,{"Output"}),\n Removed_Empty = Table.SelectRows(Remove_Unwanted_Cols, each [Output] <> null and [Output] <> "")\nin\n Removed_Empty\nRun Code Online (Sandbox Code Playgroud)\n