[[20200116231602]] 『「住所+文字列+文字列」複数条件の文字列抽出』(いちご) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「住所+文字列+文字列」複数条件の文字列抽出』(いちご)

「住所+文字列+文字列」複数条件の文字列抽出

ご教示下さい。

「G2」セルに例1〜例7の様に入力します。
「H2・I2・J2」セルには34バイト(全角で17文字)表示です。

同様に「O2」のセルに「例4・6・7」の様に入力します。
「P2・Q2」セルも34バイト(全角で17文字)表示です。

漢字→全角  数字→半角  カタカナ→F8
英字→半角アルファベット(シフトを押しながら)
空白→全角 です。

※「H2」・「P2」セルは34バイト(全角17文字)表示です。
※「H2」・「P2」セルは34バイト(全角17文字)表示で、AIT+Enterのように上下に表示はしません。
※「例5」のように「G2」セルの空白に「+」を入れると、「I2」セルはAIT+Enterのように表示したいのです。
※「例6・例7」のように「O2」セルの空白に「+」を入れると、AIT+Enterのように表示したいのです。

例1
G2 京都府京都市上京区水溜まり馬鹿な子肥満寺西入鬼退治町20-2-2
| H2                      | I2      
| 京都府京都市上京区水溜まり馬鹿な子|肥満寺西入鬼退治町20-2-2

例2
G2 愛知県名古屋市名東区極楽1000-10-7 (株)温泉グッズ研究所 豚屋敷デブの会 
| H2                        | I2              | J2
|愛知県名古屋市名東区極楽1000-10-7|(株)温泉グッズ研究所 | 豚屋敷デブの会

例3
G2 神奈川県横浜市保土ヶ谷区瀬戸ヶ谷町5-5-555 寝坊の助温泉「食左右衛門旅館」
| H2                        | I2     | J2
|神奈川県横浜市保土ヶ谷区瀬戸ヶ谷町|5-5-555|寝坊の助温泉「食左右衛門旅館」
又は
|神奈川県横浜市保土ヶ谷区瀬戸ヶ谷町5-|5-555|寝坊の助温泉「食左右衛門旅館」

例4
G2・O2 北海道茅部郡森町港町3  HOTEL「お節介」
| H2・P2           | I2・Q2
|北海道茅部郡森町港町3 |HOTEL「お節介」

下記の住所間空白の所に「+」を入れるとAIT+Enterのように上下に表示したいのですが・・・。

例5
G2 長野県上伊那郡日曽利町マナーモード88 正直ガーデンフォレストA-1007+花屋敷きらきら会
| H2                     | I2
|長野県上伊那郡日曽利町マナーモード88 |正直ガーデンフォレストA-1007
                         |花屋敷きらきら会

例6
O2 愛知県名古屋市名東区極楽1000-10-7 (株)温泉グッズ研究所+豚屋敷デブの会
| P2                          | Q2
| 愛知県名古屋市名東区極楽1000-10-7 | (株)温泉グッズ研究所
                           |豚屋敷デブの会

例7
O2 愛知県名古屋市名東区極楽1000-10-7+(株)温泉グッズ研究所 豚屋敷デブの会
| P2                         | Q2
| 愛知県名古屋市名東区極楽1000-10-7 | 豚屋敷デブの会
| (株)温泉グッズ研究所             |

ネットで下記のような関数が出てきましたが、上手くいく場合と上手くいかない場合があり、
複数の条件のため上手くいきません。
何より、理解していないためにどうにもなりません。

=LEFT(G2,FIND(”  ”),G2)
=MID(G2,FIND(" ",G2)+1,LEN(G2))
=MIDB(G2,1,34)

上記の様な事が出来るのでしょうか?
また上記のようにするには、何か方法があるのでしょうか。
エクセルは初心者です。

他力本願ですが、どうぞ、宜しくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 例1,2,3はパス。

 例5(例6、例7も同じパターン)

 H2
 =SUBSTITUTE(LEFT(G2,FIND(" ",SUBSTITUTE(G2," "," ",1),1)-1),"+",CHAR(10))

 I2
 =SUBSTITUTE(RIGHT(G2,LEN(G2)-LEN(H3)-1),"+",CHAR(10))

 半角 + 使用

 寝ます。
(BJ) 2020/01/17(金) 03:55

 H2 =SUBSTITUTE(LEFTB(G2,MIN(FINDB(" ",G2&" "),IF(ISERR(FIND("+",LEFTB(G2,35))),35,10^15))-1),"+",CHAR(10))

 I2 =SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(TRIM(SUBSTITUTE(G2,SUBSTITUTE(H2,CHAR(10),"+"),""))," ",REPT(" ",100)),100)),"+",CHAR(10))

 J2 =SUBSTITUTE(TRIM(REPLACE(G2,1,FIND(SUBSTITUTE(I2,CHAR(10),"+"),G2)+LEN(I2)-1,"")),"+","")

 で、いいの?

 ※スペースと+ は全角
(GobGob) 2020/01/17(金) 09:53

BJ 様

深夜というか早朝というかご教示有り難うございました。
今、セルに関数を入力いたしました。

CHAR(10)をネットで調べて、書式設定しましたら表示いたしました。

ありがとうございます。

ただ、その後どうしたらいいのかさっぱりわかりません。

H2・I2の解説を伺えないでしょうか?
この様な複数の関数を解く時には左側から考えていくのですか、
それとも真ん中から考えていくのですか?

よろしくお願いします。

貴重な時間を割いていただきありがとうございます。

いちご

(いちご) 2020/01/17(金) 22:04


GobGob 様

ご教示有り難うございます。

昨年(12/23)、ど素人が質問しても良いのかしらと投稿しましたら、
5回もご教示有り難うございました。

早速入力いたしたいと思います。

御時間のある時で構わないのですが、解説していただけると有り難いのですが、
只今、目が丸くなっています。

貴重な時間を割いていただきありがとうございます。

ご連絡は後ほどいたしたいと思います。

ありがとうございます。

いちご

(いちご) 2020/01/17(金) 22:16


GobGob 様

お世話になります。

只今、数種の例を入力いたしました。

例1
長野県上伊那郡日曽利町マナーモード88+正直ガーデンフォレストA-1007

例2
埼玉県比企郡川島町正直500-5-5+正直ガーデンフォレストA-1007

上記を「G列」に入力しましたら、H列には上手く2段に表示できましたが、
「J」列に

長野県上伊那郡日曽利町マナーモード88正直ガーデンフォレストA-1007

埼玉県比企郡川島町正直500-5-5正直ガーデンフォレストA-1007

のように「+」がない上記表示になります。

文字の間に「空白」を入れると「H列」・「I列」にきれいに表示します。

何回か全角確認後「+」を入力しましたが、上手きいきません。
入力の仕方が有りましたら、教えていただきたいのですが・・・。

関数入力の際は、コピーして貼り付けをいたしております。

記載した全ての例は完璧です。

感謝! 感謝!
改めて心底より感謝いたします。

いちご

(いちご) 2020/01/17(金) 23:54


GobGob 様

度々お世話になります。

例1

 長野県上伊那郡日曽利町マナーモード88+正直ガーデンフォレストA-1007 

例2

 埼玉県比企郡川島町正直500-5-5+正直ガーデンフォレストA-1007

考えてみましたら、上記のような場合はないようです。

御時間を取らせて申し訳ありません。

貴重な時間とは思いますが、解説をして頂くと有り難いのですが。

有り難うございました。

いちご

(いちご) 2020/01/20(月) 00:36


 >上記を「G列」に入力しましたら、H列には上手く2段に表示できましたが、 
 >J」列に 

 >のように「+」がない上記表示になります。 

 J2 =IF(I2="","",SUBSTITUTE(TRIM(REPLACE(G2,1,FIND(SUBSTITUTE(I2,CHAR(10),"+"),G2)+LEN(I2)-1,"")),"+",""))

 でいいの?

(GobGob) 2020/01/20(月) 15:49


GobGob 様

この度、貴重な御時間を取っていただき有り難うございました。

H2・J2・I2の関数はあまりにも長いので全然わかっていません。

REPT(" ",100)),100)の100は何なの?など。

今回わかったのは、CHAR(10)と書式設定で2段になる事ぐらいです。

まさか本当に出来るとは思っても見ませんでした。
少しずつですが、勉強したいと思います。

本当に感謝! 感謝! です。
有り難うございました。

(いちご) 2020/01/20(月) 23:36


 REPT(" ",100)の100とは " "が100個の文字列データ。って意味っす。

 文字1+" "+文字2 の空白を

 文字1+"      ※100個"+文字2

 に置換した文字列をひだりから100個とれば

 文字+"              "
 (空白は100-文字1の数)

 になるっす。
(GobGob) 2020/01/21(火) 16:42

GobGob 様

ご教示有り難うございます。

この掲示板は素人には関数ばかりでなくVBA(全然解らない)?など
解読不能の文字ばかりで、ネットで一つ一つ調べても解らなく、
何なの?
ばかりです。

でも、この度も暖かくご教示頂き恐れ入ります。

またお願いする事もある時にはどうぞご教示下さい。

有り難うございました。

いちご

(いちご) 2020/01/21(火) 21:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.