我在 excel 中有一個 ip 地址為 10.0.0.0 的單元格,但我想將第三個八位位元組增加 4。所以下面下一個單元格的輸出將是 10.0.4.0
如果可能的話,我如何在沒有任何復雜的 VB 腳本的情況下實作這一點。
謝謝!
uj5u.com熱心網友回復:
您可以有一個公式將 4 添加到第三個八位位元組,如下所示:
=TEXTJOIN( ".", 1,
{0;0;4;0}
FILTERXML( "<m><s>" & SUBSTITUTE( A1, ".", "</s><s>" ) & "</s></m>", "//s" ) )
其中 A1 是保存目標字串“10.0.0.0”的位置,而 4 顯然位于第三個位置。您還可以通過將所需的偏移量放入“{0;0;4;0}”陣列中來使其成為通用解決方案。
嗯 - 經過進一步思考,您需要確保八位位元組的角色超過 255。這是一個更安全的版本:
=TEXTJOIN( ".", 1,
BITAND( {0;0;4;0}
FILTERXML( "<m><s>" & SUBSTITUTE( A1, ".", "</s><s>" ) & "</s></m>", "//s" ),
{255;255;255;255} ) )
uj5u.com熱心網友回復:
Excel 2019 及更高版本的公式解決方案
嘗試如下設定表格
1] 在Octet D2中,輸入 Octet 的位置編號,從 1 到 4
2] 在Increment E2中,輸入 Increment 的任何值
然后,
3]在結果 B2中,輸入陣列(CSE)公式:
=TEXTJOIN(".",1,BITAND(TRIM(MID(SUBSTITUTE($A2,".",REPT(" ",50)),{1;50;100;150},50)) IF(ROW(1:4)=D2,E2,0),{255;255;255;255}))
或者,
使用類似于標記 fitzpatrick 公式的 Filterxml 函式。
在Result B2中,輸入陣列 (CSE) 公式:
=TEXTJOIN(".",1,BITAND(FILTERXML("<a><b>"&SUBSTITUTE(A2,".","</b><b>")&"</b></a>","//b") IF(ROW(1:4)=D2,E2,0),{255;255;255;255}))

評論 :
1] 嘗試將八位位元組數更改為 1 到 4 并在測驗結果時增加值。
2] 對于 Office 365,公式將是正常輸入
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415388.html
標籤:
上一篇:VBA復制單元格與行
