
明日までに集計作業を終わらせる必要がありますが、VBA等できないので
どなたかお知恵をお貸し頂けないでしょうか。
30,000行近くあるテキストファイルがあります。
データが全て縦に並んでいます。
これを、Excelに出力したいです。
出力条件は、横方向に【一行】を【1セル】で出力したいです。
完全に横一行にするのではなく、特定行で改行を入れたいのです。
***具体例***
①下記の【===========】内が1つのデータです。
②下記の【===========】内は、10行のときもあれば3行の時もあります。
③Excel出力時は、セルの左側から埋めていく形にしたいです。
================================
2024/10/10(木)16:41
1等賞!
2024/10/09
================================
宜しくお願い致します。

No.1ベストアンサー
- 回答日時:
やり方がベストかは分かりませんが、VBAを使わずに自分なら・・・ということで。
①Wordの文字の置き換えを使って1行ずつのデータに整形。
オプションの特殊文字で、改行を何かの文字に置換
================を改行に置換
2024/10/10(木)16:41●1等賞!●2024/10/09●
2024/10/10(木)16:41●1等賞!●2024/10/09●あああああ●
2024/10/10(木)16:41●1等賞!●2024/10/09●
②作ったデータをExcelにコピー後、データツールの区切り位置を使って区切る。
迅速なご回答有難うございました。
勉強になりました。本当に助かりました。
ご教示頂いた方法で試したところデータの集計ができました。
一番最初にご回答をくださったpoco_2さんをベストアンサーに選ばせて頂きます。
No.4
- 回答日時:
データの中にバッチに使えない文字が現れない、って前提なら、バッチで吐いて、Excelで読むのが簡単ではなかろうか…
例えば下記をメモ帳なんかで goo.cmd ファイルに書いて、
@echo off
setlocal EnableDelayedExpansion
set str=
for /F "delims=" %%a in (%1) do (
if "%%a" EQU "===" (
if defined str echo !str!
set str=
) else (
if defined str (
set str=!str! %%a
rem 上の!str! の後ろはタブコード。
) else (
set str=%%a
)
)
)
コマンドプロンプトで
C:\xxx>goo.cmd データファイル > abc-tab.txt
を実行して、abc-tab.txt をExcel でタブ区切りテキストとして読み込む。
※ "===" は現物の長さに合わせる事
ご回答有難うございました(*- -)(*_ _)
ご丁寧にご記載頂き、大変勉強になりました。
次に大量のデータ集計があったときには
是非この方法も試してみたいです。
No.3
- 回答日時:
私のやっていたことですが、
1:テキストファイルに出力する
2:wordに読み込む
3:wordの置換機能で特殊文字などを@に変換したりする
(区切り文字を仕込む)
4:エクセルにCSVとして読ませる
こういう経路を辿れば、割と作業がはかどると思います。
例題で言えば・・
改行を,にする
=====を@にする
エクセルで@を区切り文字に指定すれば、恐らく、目的に近い結果を得られるのではないかと思います。
wordには、特殊文字(改行記号)などを検索・置換する機能があります。
これを利用すれば、いいかと思います。
ご回答有難うございました(*- -)(*_ _)
ご丁寧にご記載頂き、大変勉強になりました。
次に大量のデータ集計があったときには
是非この方法も試してみたいです。
No.2
- 回答日時:
こんにちは
>VBA等できないので
>どなたかお知恵をお貸し頂けないでしょうか
作成依頼をしたいのなら、ここのような質問サイトではなく、依頼サイトになさった方が効果的と思います。
>【===========】内が1つのデータです。
区切りになっている【===========】というのが全て同じ文字列なら、関数でも可能でしょう。
1)テキストファイル、またはCSVとしてシートに読み込みます。
この結果、A列に文字列が縦に並びます
2)Office365等であればC1セルに
(365以前のバージョンでも、式を作成すれば同様のことが可能です)
=FILTER(ROW(A:A),A:A=区切り文字列,"")
を入力すると、区切り文字のある行番号がC列にスピルされます。
3)D1セルに
=IF(C2<>"",TRANSPOSE(OFFSET(A$1,C1,0,C2-C1-1)),"")
を入力して、右下隅をダブルクリック(又は下方にフィルコピー)
すると、D列以降に、ご希望の結果がスピルされます。
4)そのままだと関数値なので、セル全体をコピー、値をペースト
で固定値化します。
その後、A:C列を削除すればお求めの結果になります。
ご回答有難うございましたm(_ _"m)
ご丁寧にご記載頂き、大変勉強になりました。
次に大量のデータ集計があったときには
是非この方法も試してみたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【画像あり】【関数】指定した...
-
エクセルでフィルターした値を...
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
エクセルシートの見出しの文字...
-
【マクロ】【画像あり】❶ブック...
-
Office2021のエクセルで米国株...
-
【マクロ】excelファイルを開く...
-
【マクロ】実行時エラー '424':...
-
【関数】3つのセルの中で最新...
-
【マクロ】【相談】Excelブック...
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【関数】=EXACT(a1,b1) a1とb1...
-
セルにぴったし写真を挿入
-
他のシートの検索
-
空白のはずがSUBTOTAL関数でカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報