問(wèn)題很簡(jiǎn)單。 就是有一個(gè)表格,需要替換其中的部分文本。 我第一反應(yīng)就是嵌套循環(huán)。 首先循環(huán)左表(原文本),對(duì)于左表中的每一行,循環(huán)右表,完成右表中的每個(gè)替換要求。 既然都是按行循環(huán),就可以使用BYROW函數(shù)。 比如,我們可以這么寫公式:
其中, data - 原文本 repl_arr,替換要求數(shù)組, 第4行的BYROW函數(shù)循環(huán)原文本區(qū)域:data,對(duì)于每一行,r,進(jìn)行內(nèi)層循環(huán)。 第6~11行是內(nèi)層循環(huán),對(duì)于上一層循環(huán)的每一行r進(jìn)行替換。 從邏輯看,似乎沒(méi)什么大問(wèn)題。 但是這個(gè)函數(shù)運(yùn)行不了,會(huì)出錯(cuò)。 因?yàn)閮?nèi)層循環(huán)BYROW返回的是一個(gè)數(shù)組。 這樣公式返回值就是數(shù)組的數(shù)組。結(jié)果是錯(cuò)誤的。 其實(shí),這個(gè)方法還有更大的問(wèn)題。 對(duì)于每一行原文本,它用右邊的表中每一個(gè)替換要求都做了一遍。 但是每一遍都只是完成了一次替換。 而要求是對(duì)原文本進(jìn)行多次替換,這些替換要求是累加的。 其實(shí),一開(kāi)始的思路并沒(méi)有問(wèn)題:可以使用嵌套循環(huán)完成。 不過(guò)內(nèi)層循環(huán)有兩個(gè)要求:
滿足這兩個(gè)要求的循環(huán)函數(shù)就只有REDUCE函數(shù)了。 公式如下:
這是最終結(jié)果, 詳情咨詢客服(底部菜單-知識(shí)庫(kù)-客服) Excel+Power Query+Power Pivot+Power BI 自定義函數(shù) 底部菜單:知識(shí)庫(kù)->自定義函數(shù) 面授培訓(xùn) 底部菜單:培訓(xùn)學(xué)習(xí)->面授培訓(xùn) Excel企業(yè)應(yīng)用 底部菜單:企業(yè)應(yīng)用 |
|