[英]EXCEL: Multiplying comma separated single-digit numbers in a cell
我在一個用逗號分隔的單元格中有一個 8 個個位數的字符串。 我需要按照這個確切的特定順序將每個數字乘以 1,2,3,4,5,6,7,8。
如果我有A2= a,b,c,d,e,f,g,h
我需要結果B2= (a*1),(b*2),(c*3),(d*4),(e*5),(f*6),(g*7),(h*8)
例如A2=1,2,3,4,5,6,7,8
=> B2=1,4,9,16,25,36,49,64
我已經制定了這個公式 -
=LEFT(MID(A2,1,1)*1&","&MID(A2,3,1)*2&","&MID(A2,5,1)*3&","&MID(A2,7,1)*4&","&MID(A2,9,1)*5&","&MID(A2,11,1)*6&","&MID(A2,13,1)*7&","&MID(A2,15,1)*8,LEN(A2))
它確實適用於前幾個數字,但我認為這在處理所有數字時遇到了麻煩。 如果我輸入0,0,0,0,0,0,0,1
它工作正常
但是如果我輸入0,0,0,0,0,2,2,2
,我會得到0,0,0,0,0,12,14
(這只有 7 個結果)
和1,2,3,4,5,6,7,8
。 只有 6 個結果。
我最近才開始學習 excel,任何幫助將不勝感激。
在 Office 365 中,我們使用 FILTERXML 和 SUBSTITUTE 創建數字數組。 然后使用 TEXTJOIN 在使用 SEQUENCE 創建一個1,2,3,...
的數組並相乘后,我們將它們重新組合成一個字符串。 使用了 LET,所以我們不需要重復長的 FILTERXML:
=LET(num,FILTERXML("<t><s>"&SUBSTITUTE(A2,",","</s><s>")&"</s></t>","//s"),TEXTJOIN(",",,num*SEQUENCE(COUNT(num))))
此版本不關心字符串中有多少個數字。
你這樣做的原因是LEFT(...,LEN(A2))
。 它只返回與原始字符相同數量的字符。 刪除該部分,不需要它:
=MID(A2,1,1)*1&"," &MID(A2,3,1)*2&","&MID(A2,5,1)*3&","&MID(A2,7,1)*4&","&MID(A2,9,1)*5&","&MID(A2,11,1)*6&","&MID(A2,13,1)*7&","&MID(A2,15,1)*8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.