14歳の自分に衝撃の事実を告げてください

Excelの区切り文字について質問です。
Excel機能にある、区切り文字を使う時に区切ったあとの書式を標準とか文字列とか選べますよね。
その際に、全て文字列にしたいのに、別ウィンドウが小さすぎて、全て選択できないことがあります。
上手く説明できないのですが、区切り文字を何行かまとめてするときに下の方が列が長い場合、下のほうまでスクロールしてその長い列のところにして、右の方にしないと右の方の列を文字列とかにできないってことです。
(伝わらない気がする…)
これの対処法を知りたいのですが…
区切り文字の別ウィンドウって大きくならないですよね…

質問者からの補足コメント

  • 分かりにくくてすみません。Excelを開いて確認したところ区切り位置という機能でした。
    区切り位置→コンマやタブなど〜→区切り文字の選択→
    ここでデータのプレビューという部分で文字列に選択出来るのですが、ここのウィンドウサイズを大きくできないため右を選択できないことがあります。
    1番長い列までスクロールして右にいくことによって選択できるのですが、1番長い列がどこにあるかわからないくらい膨大なデータだと出来ません。
    わかってくれる方いるでしょうか?

      補足日時:2024/10/18 16:37

A 回答 (7件)

お使いのエクセルが 365 なら


TEXTSPLIT 関数 がよろしいのでは?

TEXTSPLIT 関数
https://support.microsoft.com/ja-jp/office/texts …

ExcelのTEXTSPLIT関数を使ってみた
https://tech.cm-group.co.jp/posts/excel-textsplit

こちらを見る限り、何も指定しなくても文字列に分割するようです。
当方 Excel2016 なので確認できませんが。


VBA でやるなら こんな感じ。

Sub Sample()
Dim info()
Dim i As Long
Dim C As Long
Dim rng As Range

C = Columns.Count
ReDim info(1 To C, 1 To 2)

For i = 1 To C
info(i, 1) = i
info(i, 2) = 2
Next

On Error GoTo Err_Proc
Set rng = Application.InputBox("表示先", Type:=8)
Selection.TextToColumns Destination:=rng, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=info
Exit_Proc:
Exit Sub
Err_Proc:
MsgBox "エラー'" & Err.Number & "'" & vbNewLine & Err.Description
Resume Exit_Proc
End Sub
    • good
    • 0

》 補足日時:2024/10/18 16:37


の[補足]へのコメント、
》 分かりにくくてすみません。
私の理解力が貧弱なのかと戸惑っていましたが、貴方の説明が“分かりにくい”と告白いただいて安心しました。(*^_^*)
さらに確認しておきたいのですが、私は Excel 2019 を使ってますが、貴方のExcelのバージョンを教えてください。
》 区切り位置→コンマやタブなど〜→
などと、コマンドの手順を書かれていますが、私もその手順を辿ってみたいのです。
    • good
    • 0

なるほど。

極端に長さの異なる行に対してやったことなかったので、気づきませんでした。

方法:補助列を追加します。
前提として、A列のデータをカンマで分割するとします。

STEP1:左に2列を追加します。A列B列が空欄、C列が分割したいデータになります。

STEP2:A1から下に1 2 3 とC列にデータのある限り連番を振ります。後で行の順序を戻す際のキーになります。

STEP3:B1に、=LEN(C1)-LEN(SUBSTITUTE(C1,",","")) という数式を入れます。これで、B1にC1の中のカンマの個数が入りますね。
(C1の長さとC1からカンマを全部削除した文字列の長さの差)
B列の下までドラッグして延ばすと、B列にC列のカンマの数つまり分割後の列数-1 が入ります。

STEP4:A列~C列を選択してB列で降順にソートします。これで、分割後の列が多い行順に並びます

STEP5:C列をカンマで分割します。この際、一番列の多い行が先頭なので、問題になっている「全部の列選択」が簡単にできます。

STEP6:再度、データのあるセルを全部選択してA列で昇順にソートします。これで行の順序が元に戻ります。

STEP7:A列とB列を削除します。
以上

タブで区切るなら、"," のところが CHAR(9) です。
別案としては VBA でプログラムを書くのですかね。
    • good
    • 0

「列が多くなる行をてっぺんにコピーしてから」と書きましたが、列が多くなる疑似データをてっぺんに追加する方が簡単ですね。

    • good
    • 0

試してみましたが、いい方法は無さそうです。

スクロールが面倒なら、列が多くなる行をてっぺんにコピーしてから分割して、後で削除するのでいかがでしょうか。それも面倒ならマクロを組むとか。
    • good
    • 0

》 Excel機能にある、区切り文字を使う…


その「機能」は何処にありますか?昔からあるようで、それが何処にあったか分からないので、お尋ねしています。
    • good
    • 0

状況がうまく掴めてないですが、現在いるところの全てを選択したいのであれば、Ctrl + aで全選択することで解決はできませんか?



それかShiftを押しながら矢印キーで選択を広げる方法でも良い気がします。

いかがでしょうか
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A