【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

質問させていただきます
エクセル2003を使っています
セルに改行を行いながら入力されています
改行はCtrl+Enterを押して行っています
そうすると1つのセルの中で2行、3行と書けるのですが
1行目だけ、2行目だけ、というように関数で抜き出して
違うセルに表示させることは可能でしょうか

宜しくお願いします

A 回答 (6件)

添付図参照



1.Sheet2 のセル B1 に式 =FIND(CHAR(10),Sheet1!$A1,A1+1) を入力して、此れを右方にズズーッとドラッグ&ペースト
  なお、A列は空白のままにしておく
2.Sheet2 の1行目を下方にズズーッとドラッグ&ペースト
3.Sheet1 のセル B1 に次の[条件付き書式]を設定
    数式が    =ISERROR(B1)
    フォント色  白
4.Sheet1 のセル B1 に次式を入力して、此れを右方にズズーッとドラッグ&ペースト
    =MID($A1,Sheet2!A1+1,IF(ISERROR(Sheet2!B1-Sheet2!A1-1),99,Sheet2!B1-Sheet2!A1-1))
5.Sheet1 の1行目を必要なだけ下方にドラッグ&ペースト
「関数でセル内の文字を抜き出す方法」の回答画像6
    • good
    • 0

◆こんな方法はいかがでしょう


◆B1に1行目、C1に2行目、・・・・と表示させます
B1=TRIM(MID(SUBSTITUTE($A1,CHAR(10),REPT(" ",100)),COLUMN(A1)*100-99,100))
★右にコピー

◆2行目は
=TRIM(MID(SUBSTITUTE($A1,CHAR(10),REPT(" ",100)),2*100-99,100))

◆3行目は
=TRIM(MID(SUBSTITUTE($A1,CHAR(10),REPT(" ",100)),3*100-99,100))

◆最終行は
=TRIM(RIGHT(SUBSTITUTE($A1,CHAR(10),REPT(" ",100)),100))
「関数でセル内の文字を抜き出す方法」の回答画像5
    • good
    • 0

1行目はともかく2行目以降が不可能と言いませんがかなり厳しい数式になります。



1行目はデータ+CHAR(10)だからMID関数で開始位置は1、文字数はCHAR(10)をFIND関数の結果から-1で抽出、
2行目以降は、開始位置、文字数の両者が可変になるので、一案ですがSUBSTITUTE関数でCHAR(10)の2番目と3番目を別文字に変更して抽出しては如何でしょうか。

マクロならば、ユーザ関数定義(=mjGET(セル,順位))すれば、=mjGET(A1,2)で2行目抽出
Function mjGET(rng As Range, num As String)
wk = Split(rng, Chr(10))
mjGET = wk(num - 1)
End Function
    • good
    • 0

■A1


あいうえお
かきくけこ
さしすせそ

という文字列の場合
■B1
=SEARCH(CHAR(10),A1,1)
で、最初の改行の位置がわかります。
CHAR(10)というのが改行です。
//6

■C1
=MID(A1,1,B1)
//あいうえお

■D1
=MID(A1,B1+1,100)
//かきくけこさしすせそ

■E1
=SEARCH(CHAR(10),D1,1)
//6

■F1
=MID(D1,E1+1,100)
//さしすせそ

■G1
=MID(A1,B1+1,E1)
//かきくけこ

あとはコピペで行くと思います。
    • good
    • 0

該当列を選択し、



データ→区切り位置→次へ→「その他」をチェックし横のボックスに
「Ctrl+j」(Ctlrを押しながらj)→次へ→完了、で横に抜き出せます。
    • good
    • 0

>Ctrl+Enter


多分Alt+Enterの事だと思うんですが・・・

改行ごとにセルを分けたいのでしたら、データ→区切り位置→次へ→その他へチェック、横のボックスに「Ctrl+J(Ctrlを押しながらJ)」→次へ→完了

で改行ごとにセルが分かれると思います。

任意の行を抜き出したいのであれば、任意改行はCHAR(10)で表せますので、FIND使ってみるとかSUBSTITUTEでいらない部分を置換するとかですかね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!