取得して切り出す文字列の長さが固定で無い場合には、どのようにしら良いのでしょうか?
例:
ある適当な文字列を分割
ETUROGO → E T U R O G O
の様に一文字ずつ分割
各文字を他の文字列に変換
E→ 2 や T → 電話 のように全文字を
他の文字に変換
この文字列の長さが固定ならば範囲をして変換
する事が出来るのですが、
取得文字列(この場合は、ETUROGO)の長さが
3文字~20文字程度で決まっていない場合
どのようにしたら自動で変換されるのでしょうか?
LEN関数で文字数を取得
LEFT関数やMID関数等で文字列を切り出す。
という事までは考えたのですが。
文字数が変化してしまうとやり方が分かりません。
また、上記の場合は英文字なのですが同様に
文字列の長さが固定ではなく(4文字~20文字の間)
”東京携帯配備” を ”東京” ”携帯” ”配備”
のように単語で分割し同様に他の文字列に変換
するという場合は、少し異なるのだと思うのですが
INDEX関数等を使えば良いのかな?
とも思うのですが過去の例を見ても理解出来ません。
どうかお教え願います。宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
これは何の質問ですか。
エクセル?また用いる手段は
(1)関数の範囲で解け?
(2)VBAを使っても良い?
(A)ある適当な文字列を分割
関数式で
A1に文字列ありとする。
B1に=MID($A1,COLUMN(B1)-1,1)といれ
B1を最大文字数の列まで10文字でK列まで複写。
B1からK1までに1文字ずつ入ります。
$が大事です。
(B)E→ 2 や T → 電話 のように全文字を
他の文字に変換
VLOOKUP関数を使うことによって、単語数が表を作れるほどの簡単なものなら、表さえ出来れば、可能かと思います。
(C)単語で分割し同様に他の文字列に変換
するという場合
「単語」の判別(切りだし)が、単語辞書を使わないと出来ないので、VBA程度出きる人も、その点のプロでないと出来ないでしょう。増して関数では出来ないでしょう。
APIそのた単語辞書等の仕組みを、深く勉強しないといけないのではと思いますから
こう言うのは、「無理」と言うのでしょう。
フリーソフトなどないか、セミプロの作ったソフトがないか探しましょう。
この回答への補足
早速の回答有り難うございました。
使用ソフトは、エクセルです。失礼致しました。
関数でもVBAでも良いのですが、VBAは使った事が無い初心者です。
しかし丁寧な回答で少し分かりました。
明らかに無理な部分も教えて頂きましたので、もう少し整理してみて、どこまで出来るのか頑張って見ます。
有り難うございます。
No.2
- 回答日時:
Excelですよね?
VBAでfor文使った方がはるかに簡単じゃないですか?
どうしてもVBAを使いたくないなら:
文字数の上限が決まっているなら、IF文で文字数が3文字のとき、4文字のとき・・・としていけば可能ですけど、かなり長くなりますよね。
東京携帯配備の方は、必ず2文字ずつ区切られるのですか??
この回答への補足
早速の回答有り難うございます。
補足させて頂きます。
VBAは、使った事が無いので関数と書いてみました。
VBAという事はマクロを作るという事なのでしょうか?
文字数の上限は決まっているのですが、24文字程度になってしまいます。
東京携帯配備の場合は、1文字~3文字の間になります。
ただ長さは、同様に24文字程度までの間で固定では無いのです。
何か良い方法が有れば、宜しくお願い致します。
No.1
- 回答日時:
使用しているのはEXCELですよね。
文字数が少ない場合は、数式でできますが20文字となると
ユーザー定義関数を作るか、マクロによる自動変換でしょう。
後、変換自体は、SUBSTITUTE関数を使うのが楽だと思います。
A1が”東京携帯配備”なら
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"東京","大阪"),"携帯","電話"),"配備","サービス")
で”大阪電話サービス”になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
preg_replaceがうまくできない
-
16進数の文字列をアスキーコー...
-
fgetws関数で読み込んだUNICODE...
-
数値をASCII文字にする方法につ...
-
マクロで半角を全角に
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
Excel関数「COUNTIF」で”文字”...
-
XMLのタグ名の禁則文字
-
ソースコードの1行が長いとき...
-
全角括弧と全角読点の間隔を狭...
-
エクセルでの漢字、カタカナ、...
-
半角記号、全角記号を含む正規...
-
エクセルのCOUNTIFが正しくカウ...
-
Replace関数は文字数の制限ある...
-
特定の文字を簡単な操作で半角...
-
記号は半角と全角どちらがよい...
-
phpのメールフォームの完了画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値をASCII文字にする方法につ...
-
カンマの含まれる文字列の数値...
-
16進数の文字列をアスキーコー...
-
fgetws関数で読み込んだUNICODE...
-
マクロで半角を全角に
-
VB6 機種依存文字の変換
-
1バイト文字の上位4ビット・...
-
VC++ マルチバイト文字とUniCod...
-
VBA ASC関数で変換できない文...
-
preg_replaceがうまくできない
-
Perlで値が文字列か数値かを区...
-
ヌル文字とは一体何でしょうか
-
エスケープされたunicodeのデコ...
-
VB6.0 Base64のデコード方法を...
-
int temp = 0; if(isdigit(arr[...
-
フォームからPOSTした際ボーダ...
-
サロゲートペア文字の半角カナ...
-
シフトJIS⇒MIMEエンコード(RFC2...
-
ケータイの絵文字
-
HTMLエンティティ文字の変換
おすすめ情報