[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別シートに記載している特定の文字列の後ろの情報を抜き取りたい』(日本)
掲題の件、まずは参考を見て頂いた方が早いと思うので以下に記載します。
◆Router1
config firewall policy
edit 1 set uuid 11111 set srcintf "VLAN" set dstintf "Vlink_1 set srcaddr "1.1.1.0/24" set dstaddr "VIP_1.1.1.1" "VIP_10.1.1.1" set action ac-- set schedule "in--" set service "HTTP" "HTTPS" set logtraffic a next edit 2 set uuid 2222 set srcintf "Vlink_1" set dstintf "VLAN" set srcaddr "all""1.1.1.1" set dstaddr "192.168.2.1/24" "192.168.1.1/24" set action ac-- set schedule "in--" set service "HTTP" "HTTPS" set logtraffic a set nat enable next end
◆Router2
config firewall policy
edit 1 ・ ・ ・
上記のset srcintfの後ろの"VLAN"という文字列をC9からどんどん下に、
set dstintfの後ろの””の中の文字列をE9からどんどん下に、
set srcaddrの後ろの””の中の文字列をD9からどんどん下に、
set dstaddrの後ろの””の中の文字列をF9からどんどん下に、
set serviceの後ろの””の中の文字列をG9からどんどん下に、
入力していきたいです。
情報自体は「edit」から「next」の塊が100個くらいあります。
情報が記載されてあるシート名は「情報」
情報を書き込みたいシート名は「-」となっております。
誠に申し訳ございませんがお助け願います。
宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
なお、この掲示板では先頭に半角スペースを入れると、ちょっと小さめの文字で改行されずに表示されるという特徴がありますので、それを利用して例えば↓のように提示されるとよいでしょう。
【情報】シートのレイアウト
__________A__________ ___B___ _____________________C_______________________ 01 ◆Router1 02 config firewall policy 03 edit 1 04 set uuid 11111 05 set srcintf "VLAN" 06 set dstintf "Vlink_1 07 set srcaddr "1.1.1.0/24" 08 set dstaddr "VIP_1.1.1.1" "VIP_10.1.1.1" 09 set action ac-- 10 set schedule "in--" 11 set service "HTTP" "HTTPS" 12 set logtraffic a 13 next 14 edit 2 15 set uuid 2222 16 set srcintf "Vlink_1" 17 set dstintf "VLAN" 18 set srcaddr "all""1.1.1.1" 19 set dstaddr "192.168.2.1/24" "192.168.1.1/24" 20 set action ac-- 21 set schedule "in--" 22 set service "HTTP" "HTTPS" 23 set logtraffic a 24 set nat enable 25 next 26 end 27 ◆Router2 28 config firewall policy 29 edit 1 30 ・ 31 ・ 32 ・
【-】シートのレイアウト(結果出力用)
〜〜〜〜〜〜〜〜
(もこな2) 2022/08/04(木) 12:00
>set dstaddr "192.168.2.1/24" "192.168.1.1/24" の""の中というのは 〃抜き出す形になればいいのだろうか? (ねむねむ) 2022/08/04(木) 12:01
すまない。 >〃抜き出す形になればいいのだろうか? ↓ どう抜き出す形になればいいのだろうか? としてくれ。 (ねむねむ) 2022/08/04(木) 12:20
PowerQueryならこんな感じでしょうか ソースの行の D:\test.txtはコマンドで書き出したテキストファイル名を指定しないといけません 空白の個数とか決め打ちしてるので、調整が必要かもしれません
let ソース = Table.FromColumns({Lines.FromBinary(File.Contents("D:\test.txt"), null, null, 932)}), フィルターされた行 = Table.SelectRows(ソース, each ([Column1] <> " next" and [Column1] <> "config firewall policy" and [Column1] <> "end")), 置き換えられた値 = Table.ReplaceValue(フィルターされた行," edit ","edit",Replacer.ReplaceText,{"Column1"}), 置き換えられた値1 = Table.ReplaceValue(置き換えられた値,"set ",",set,",Replacer.ReplaceText,{"Column1"}), 区切り記号による列の分割 = Table.SplitColumn(置き換えられた値1, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3"}), 区切り記号による列の分割1 = Table.SplitColumn(区切り記号による列の分割, "Column1.3", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Column1.3.1", "Column1.3.2"}), 置き換えられた値2 = Table.ReplaceValue(区切り記号による列の分割1," ","",Replacer.ReplaceText,{"Column1.1"}), 置き換えられた値3 = Table.ReplaceValue(置き換えられた値2,"",null,Replacer.ReplaceValue,{"Column1.1"}), 下方向へコピー済み = Table.FillDown(置き換えられた値3,{"Column1.1"}), フィルターされた行1 = Table.SelectRows(下方向へコピー済み, each ([Column1.2] = "set")), 削除された列 = Table.RemoveColumns(フィルターされた行1,{"Column1.2"}), ピボットされた列 = Table.Pivot(削除された列, List.Distinct(削除された列[Column1.3.1]), "Column1.3.1", "Column1.3.2") in ピボットされた列 (´・ω・`) 2022/08/04(木) 12:23
01 ◆ELMS-CLUBT
02 config firewall policy
03 edit 1
04 set uuid 11111
05 set srcintf "VLAN"
06 set dstintf "Vlink_1
07 set srcaddr "1.1.1.0/24"
08 set dstaddr "VIP_1.1.1.1" "VIP_10.1.1.1"
09 set action ac--
10 set schedule "in--"
11 set service "HTTP" "HTTPS"
12 set logtraffic a
13 next
14 edit 2
15 set uuid 2222
16 set srcintf "Vlink_1"
17 set dstintf "VLAN"
18 set srcaddr "all""1.1.1.1"
19 set dstaddr "192.168.2.1/24" "192.168.1.1/24"
20 set action ac--
21 set schedule "in--"
22 set service "HTTP" "HTTPS"
23 set logtraffic a
24 set nat enable
25 next
26 end
27
28 ◆ELMS-FUKOKU
29 config firewall policy
30 edit 1
【-】シートのレイアウト(結果出力用)
A列は非表示となっています。B列は各列空白です
B ---C--- ----B---- ---E--- ----F---- ----G-----
06
07
08 set srcintf set srcaddr set dstintf set dstaddr set service
09 "VLAN" "1.1.1.0/24" "Vlink_1" "VIP_1.1.1.1" "HTTP"
"VIP_10.1.1.1" "HTTPS"
10 "Vlink_1" "all" "VLAN" "192.168.2.1/24" "HTTP"
"1.1.1.1" "192.168.1.1/24" "HTTPS"
11
12
分かりづらかったらすみません、、、宜しくお願い致します。
また、私が全くpower Queryの知見が無く、、、できればVBAでお願い致します。
(日本) 2022/08/04(木) 13:31
=IFERROR(SUBSTITUTE(TRIM(SUBSTITUTE(INDEX($A$1:$A$2000,AGGREGATE(15,6,ROW($A$1:$A$2000)/(LEFT(TRIM($A$1:$A$2000),LEN(C$8))=C$8),ROW($A1))),C$8,"")),""" """,""""&CHAR(10)&""""),"")
(わからん) 2022/08/04(木) 13:41
>06 set dstintf "Vlink_1 は実際は 06 set dstintf "Vlink_1" なのだろうか? また >18 set srcaddr "all""1.1.1.1" はこの通りなのだろうか、それとも 18 set srcaddr "all" "1.1.1.1" と"と"の間にスペースがあるのだろうか?
あともこな2さんの >なお、この掲示板では先頭に半角スペースを入れると、ちょっと小さめの文字で改行されずに表示されるという特徴がありますので、それを利用して例えば↓のように提示されるとよいでしょう。 に従えばもっと見やすくなるだろう。 (ねむねむ) 2022/08/04(木) 13:42
わからんさんの式で実際には別シートとなっているので =IFERROR(SUBSTITUTE(TRIM(SUBSTITUTE(INDEX(情報!$A$1:$A$2000,AGGREGATE(15,6,ROW($A$1:$A$2000)/(LEFT(TRIM(情報!$A$1:$A$2000),LEN(C$8))=C$8),ROW($A1))),C$8,"")),""" """,""""&CHAR(10)&""""),"") として、セルの書式設定の配置タブで折り返して全体を表示するにチェックを入れてくれ。 (ねむねむ) 2022/08/04(木) 13:48
【情報】シートのレイアウト ------------------A-------------------------------- 01◆Router1 02config firewall policy 03 edit 1 04 set uuid 11111 05 set srcintf "VLAN" 06 set dstintf "Vlink_1" 07 set srcaddr "1.1.1.0/24" 08 set dstaddr "VIP_1.1.1.1" "VIP_10.1.1.1" 09 set action ac-- 10 set schedule "in--" 11 set service "HTTP" "HTTPS" 12 set logtraffic a 13 next 14 edit 2 15 set uuid 2222 16 set srcintf "Vlink_1" 17 set dstintf "VLAN" 18 set srcaddr "all""1.1.1.1" 19 set dstaddr "192.168.2.1/24" "192.168.1.1/24" 20 set action ac-- 21 set schedule "in--" 22 set service "HTTP" "HTTPS" 23 set logtraffic a 24 set nat enable 25 next 26end 27 28◆ELMS-FUKOKU 29config firewall policy 30 edit 1 31
【-】シートのレイアウト(結果出力用)
B ---C--- -----B---- ----E---- -----F----- -----G----- 06 07 08 set srcintf set srcaddr set dstintf set dstaddr set service 09 "VLAN" "1.1.1.0/24" "Vlink_1" "VIP_1.1.1.1" "HTTP" "VIP_10.1.1.1" "HTTPS" 10 "Vlink_1" "all" "VLAN" "192.168.2.1/24" "HTTP" "1.1.1.1" "192.168.1.1/24" "HTTPS" 11
>ねむねむ様 もこな2様 アドバイス通り半角を入れたら見やすくできました!
以下インライン形式で失礼いたします。 >06 set dstintf "Vlink_1 >は実際は >06 set dstintf "Vlink_1" なのだろうか?
すみません、、 06 set dstintf "Vlink_1"こちらが正になります。
>と"と"の間にスペースがあるのだろうか? ⇒スペースはありません。-のシートでは「折り返して全体を表示する」 の機能を使っているので、勝手に改行されるようになっております。
大変恐縮ですが、何卒引き続きよろしくお願いいたします。
(日本) 2022/08/04(木) 14:02
>ねむねむ様 わからん様 ご提示くださった関数を使ってみましたがうまくいかず、、、 どこのセルに挿入するのが正解でしょうか?試しに9行目のC〜G列に入れてみましたがうまく反映されなかったです、、 (日本) 2022/08/04(木) 14:06
とりあえずわからんさんの式の微修正 =IFERROR(SUBSTITUTE(TRIM(SUBSTITUTE(INDEX(情報!$A:$A,AGGREGATE(15,6,ROW($A$1:$A$2000)/(FIND(C$8,情報!$A$1:$A$20000)>0),ROW($A1))),C$8,"")),""" """,""""&CHAR(10)&""""),"") -シートのC9セルに上記を入力し右及び下へフィルコピー、その後セルの書式設定の配置タブで 折り返して全体を表示にチェックを入れるではどうだろうか?
もし上記でもうまくいかない場合、どううまくいかないか、まったく表示されない、こうなるはずがこうなってしまうなど、 状況を説明してくれ。 (ねむねむ) 2022/08/04(木) 14:09
すまない =IFERROR(SUBSTITUTE(TRIM(SUBSTITUTE(INDEX(情報!$A:$A,AGGREGATE(15,6,ROW($A$1:$A$2000)/(FIND(C$8,情報!$A$1:$A$2000)>0),ROW($A1))),C$8,"")),""" """,""""&CHAR(10)&""""),"") に修正で。 (ねむねむ) 2022/08/04(木) 14:13
ひとまずG9セルに入力されている式をコピーしてこちらに貼り付けてみてもらえないだろうか? (ねむねむ) 2022/08/04(木) 14:32
ねむねむ様 以下になります。
=IFERROR(SUBSTITUTE(TRIM(SUBSTITUTE(INDEX(情報!$A:$A,AGGREGATE(15,6,ROW($A$1:$A$2000)/(FIND(G$8,情報!$A$1:$A$2000)>0),ROW($A1))),G$8,"")),""" """,""""&CHAR(10)&""""),"")
(日本) 2022/08/04(木) 14:33
【-】シートのレイアウト(結果出力用)の 9行目の結果 ◆Router1 10行目の結果 config firewall 11行目の結果 edit1 12行目の結果 set uuid 11111
引き続きよろしくお願い致します。
(日本) 2022/08/04(木) 14:45
G8セルには何と入力されてりうだろうか? 8行目のセルに何も入力されていないとそのような状況となるが。 (ねむねむ) 2022/08/04(木) 14:49
ねむねむ様、皆様、本当にありがとうございました!!
(日本) 2022/08/04(木) 14:56
本当にありがとうございました!
(日本) 2022/08/04(木) 14:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.