[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『3つに改行された列の展開』(グミ)
セル内で3つに改行された文章をB,C,D列に展開したいです。
A1
Final Fantasy
1987
Square
↓
B1-------------C1-------------D1
Final Fantasy 1987 Square
と言った感じです。
2つに改行された文章の場合は、left/right関数とfind(char(10))
でなんとか出せるのですが、3つに改行されていると真ん中の部分の
取り方が全くわかりません。改行と改行の間を取り出す関数のようなものが
あればよいのですが...どなかかご存知でしょうか?
< 使用 Excel:Excel2016mac、使用 OS:unknown >
↓ [[20190121161218]] 『セル内の文字数と改行数の確認』(ルイボス)
(もこな2) 2019/01/22(火) 19:55
データ 区切り位置
でいいと思います。
(チオチモリン) 2019/01/22(火) 23:47
B1
=LEFT(A1,FIND(CHAR(10),A1))
C1
=MID(A1,FIND(CHAR(10),A1)+1,FIND(CHAR(10),MID(A1,FIND(CHAR(10),A1)+1,LEN(A1)))-1)
D1
=RIGHT(A1,LEN(MID(A1,FIND(CHAR(10),A1)+1,LEN(A1)))-FIND(CHAR(10),MID(A1,FIND(CHAR(10),A1)+1,LEN(A1)))-1)
(もこな2) 2019/01/23(水) 00:38
私もチオチモリンさんと同じでデータ→区切り位置で解決すると思いますが。 (コナミ) 2019/01/23(水) 06:38
(1) A1をB1にコピー (2) データ→区切り位置 で「区切り位置指定ウィザード」を起動 (3) [カンマやタブなどの区切り文字〜]を選んで次へ (4) 区切り文字の[その他]だけチェックをいれて、入力枠っぽいところにCtrl + J で改行コードを入力 (5) データ形式は適宜(今回はG/標準か文字列でよさげ)選択して、完了
って感じでしょうか。違う場合は、ツッコミお願いします。 >ALL
(もこな2) 2019/01/23(水) 07:13
=CLEAN(MID(SUBSTITUTE($A1,CHAR(10),REPT(CHAR(9),100)),100*COLUMN(A1)-99,100)) で右へフィルコピーではどうか。 なお元のセル位置がどこであれCOLUMN(A1)は変えないでくれ。 (ねむねむ) 2019/01/23(水) 08:44
もこな2さん、大筋はその手順でOKです。ありがとうございます。 一応、最初にデータをコピーしなくても3/3の画面で表示先をB1に指定すれば そこから区切ったデータが表示されることを付け加えておきます。
まぁ、数式がご希望なのかな。 (コナミ) 2019/01/23(水) 10:14
もこな2さん >=LEFT(A1,FIND(CHAR(10),A1)) は =LEFT(A1,FIND(CHAR(10),A1)-1) で。 でないと文末に改行コードがついたままになる。 (ねむねむ) 2019/01/23(水) 10:26
>ねむねむさん
確かに・・・改行コードが見えないんで気づきませんでした。フォローありがとうございます。
>グミさん
レスがないところをみると、もう見ていないかもですが、ユーザー定義関数で解決でもよければこんなのも
Function 俺式関数(文字列 As String, 何行目 As Long) As String 俺式関数 = Split(文字列, vbLf)(何行目 - 1) End Function
(もこな2) 2019/01/27(日) 22:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.