[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『認識しないスペースを置換したい』(はた)
セル内に見た目2個のスペースが入っています。
当データはWEBページから取得されたものです。
※TRIMやCLEANで消去できないので、何か変な文字が入っている
と考えています。
A空白空白B
C空白空白D
E空白空白F
となっているので、
これを
A/B
C/D
E/F
と置換したいのですが・・・。
1)エクセルの"検索と置換"機能で、該当のスペースをこぴぺして置換する
全角、半角いずれも試しています。
2)VBAでreplace関数を使う
ってもだめでした。
知恵をお借りできないでしょうか。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
ご提示の文字列がA1セルに入力されてるとしたら以下の式をC1セルに入力して、右にフィルコピーしたら それぞれどんな数値が表示されますか?
=UNICODE(MID($A1,COLUMN(A1),1))
(sy) 2018/09/15(土) 13:32
UNICODE関数使えない環境ならCODE関数で... (白茶) 2018/09/15(土) 13:47
たぶんtab? =SUBSTITUTE(SUBSTITUTE(A1,CHAR(32)&CHAR(32),CHAR(32)),CHAR(32),"/") とか? (BJ) 2018/09/15(土) 13:54
nbsp(CHAR(160))の可能性もあるかな? と... (白茶) 2018/09/15(土) 13:56
Crtl + H (置換) [検索する文字列]に Alt + 0160 <--- 数値はNumber Padから入力。ファンクションキーの下段からはダメ。 [置換する文字列]は空白のままで[全て置換]
で試して見てください。 (seiya) 2018/09/15(土) 14:03
あ、すみません。 CHAR(32) は、Tabじゃなく、半角スペースだった。 (BJ) 2018/09/15(土) 14:13
=UNICODE(MID($A1,COLUMN(A1),1))
は、#name?のエラーが出て表示されませんでした。
=SUBSTITUTE(SUBSTITUTE(A1,CHAR(32)&CHAR(32),CHAR(32)),CHAR(32),"/")
も同じく、#name?でした。
それで、余計な文字を消去して、スペースだけ残して、
=CODE(A1)
としたところ、
32
と表示されました。
半角スペースということでしょうか?
(はた) 2018/09/15(土) 14:21
[置換する文字列]は空白のままで[全て置換]
"/"に置換したい場合は、"/"を入れるでよかったでしょうか?
Alt + 0160 <--- 数値はNumber Padから入力。ファンクションキーの下段からはダメ。
すみません、ノートPCしかなくて・・・・。
とりあえずやってみましたが、反応がありませんでした。
(はた) 2018/09/15(土) 14:24
スペースが二つ入っているので、
ふつうは、右に2回矢印を押せば、右に2つ移動します。
しかし当セルでは、スペースとスペースの間で1回止まります。
もう一回、矢印を押すと右に移動します。
見た目スペースが2つにもかかわらず、
3回矢印を押さないと、二つ分移動しません。
スペースとスペースの間に見えない何かのデータが挟まってる感じです。
(はた) 2018/09/15(土) 14:36
では尚更syさんの指示に従って文字コードを明確にすべきでしょう。 UNICODE関数をCODE関数に代えて実施してみて下さい。
(白茶) 2018/09/15(土) 14:46
見た目とかあまり使わない方がいいです。 過去にも質問者側の見た目判断で、話がかみ合わなる場合が多いので。
=Len(A1)
とかで、文字数を確認されては?
>=SUBSTITUTE(SUBSTITUTE(A1,CHAR(32)&CHAR(32),CHAR(32)),CHAR(32),"/") >も同じく、#name?でした。
これ、手入力ですか? (BJ) 2018/09/15(土) 14:51
unicodeではエラーがでましたので
code関数で試してみました。
"文字列の先頭文字に対応する文字コードを返す。"
っていうことらしいのですが、
A1のセルに、2つのスペースだけを残して
=CODE(A1)
で、実行すると
32
が返されました。
それで、先頭文字のスペースを消去して実行すると
13
が返されました。
この13が意味するものはなんでしょうか?
(はた) 2018/09/15(土) 15:03
とかで、文字数を確認されては?
文字数が、1文字多いのを確認できました。
たとえば、
A半角スペース半角スペースB
となっているのですが、4が帰ってくるはずですが、
5となりました。
(はた) 2018/09/15(土) 15:12
>syさんの指示に従って と申しましたよ^^;
式は =CODE(MID($A1,COLUMN(A1),1))
syさんは >右にフィルコピーしたら >それぞれどんな数値が表示されますか? と仰ってます。
先頭から1文字ずつ取り出して それぞれの文字コードが何であるかを調べる為です。
(白茶) 2018/09/15(土) 15:17
>すみません、ノートPCしかなくて・・・・。 http://soft1.jp/trouble/w/w038.html
>それで、先頭文字のスペースを消去して実行すると >13 >が返されました。
[検索する文字列]に Alt + 0013 で
>"/"に置換したい場合は、"/"を入れるでよかったでしょうか? はい、その通りです。 試してください。 (seiya) 2018/09/15(土) 15:18
CHAR(13) CR (Carriage Return) キャリッジリターン
=SUBSTITUTE(SUBSTITUTE(A1,CHAR(32),""),CHAR(13),"/") (BJ) 2018/09/15(土) 15:25
unicode関数は2013からしか使えませんでした。 すいません。
>先頭文字のスペースを消去して実行すると >13 >が返されました。 >この13が意味するものはなんでしょうか?
文字コード13はキャリッジリターンと言う改行文字です。 テキストなどでは13がよく使われます。 EXCELでは10のラインフィードと言うセル内改行が主流です。
13の改行文字ならCLEAN関数で消せるので、 =SUBSTITUTE(TRIM(CLEAN(A1))," ","/") としてみて下さい。
(sy) 2018/09/15(土) 15:29
=CODE(MID($A1,COLUMN(A1),1))
は、"入力した数式は正しくありません"
となり、"$A1"にカーソルが指し示しますので、
"A1"に変更してみました。
すると、#NAME?
のエラーが表示されます。
(はた) 2018/09/15(土) 15:31
"一致するデータが見つかりません"
でした・・・。
(はた) 2018/09/15(土) 15:41
#NAME? でした。
>=SUBSTITUTE(TRIM(CLEAN(A1))," ","/")
同じく#NAME? でした。
どうも、私のPCだけ動作が違うようなので、
明日違うPC(エクセル2013?)で試してみます。
(はた) 2018/09/15(土) 15:48
・なぞの空白が同じ文字で必ず2連続 ・普通の文字に同じ文字が2連続以上していない
のを条件として
=REPLACE(A1,MATCH(TRUE,INDEX((MID(A1,ROW($1:$20),1)=MID(A1,ROW($2:$21),1)),),),2,"/")
※A1に対象データとしてま。 ※実際が謎なので、ちゃんと機能するかわかりまへんが。 (GobGob) 2018/09/17(月) 18:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.