No.6
- 回答日時:
こんにちは。
ANo2です。解決なさったのかそうでないのかわかりませんが・・・
>帳票の作成方法や形式、処理方法などを見直す
と書いたのは、将来的に考えた場合、質問者様や同僚の方が業務の中にブラックボックスを持ち込まない方が良いという意味も含めています。
元のデータの形式が変えられないのは条件として考えれば良く、自分たちが扱える範囲内で効率よくかつ理解できる方法を模索するのが宜しいと思います。
場合によっては、他部署や他社が協力できる範囲内で、そちらの処理も変更してもらうこともあり得るでしょう。
・・・とはいうものの、ANo4様がすでに関数での回答を示してくださっていますので、行の計算の仕組みさえ理解できればほぼ解決とも言えますね。
停車駅を可変にするには、数をどこかのセルに手入力してそれを参照する式に変えても良いですし、手入力も省きたいのなら、例えばA列で「空白でない行数」-2を算出して停車駅数とすることでも可能と思います。
ただし、この場合は、出力するセルにはA列が使えなくなりますので、表全体を一列右にずらすとか、いっそのこと別シートに作成するなどが良いのかもしれません。
台数(列数)を可変にするには、入力がない場合は出力も空白になるような式にしておいて、あらかじめ関数式を必要そうな最大行までオートフィルしておくといった方法などが考えられます。
(いろいろ便利にすると、だんだん式が長くなっていきますが…)
今さらかも知れませんが、これまでで理解できた範囲内で、同様の処理をマクロ化してみましたのでご参考までに。
※ A列と1行目にはそれぞれ停車駅と号車番号が必ず連続入力されており、最終行(列)の次のセルは空白になっているものと仮定しています。
>データ量が膨大で~~
以下は1シートのみを処理するものですが、「大量のデータ」が別ブックになっているのか別シートなのか等はわかりませんが、複数あるデータを一括で処理してしまうことも可能だと思います。
そのあたりの改変については、お勉強がてらに試してみてください。
Sub Sample()
Dim sorce As Range, rng As Range
Dim rw As Long, col As Long, c As Long
'入力範囲を確認
rw = Cells(1, 1).End(xlDown).Row
col = Cells(1, 1).End(xlToRight).Column
If rw < 3 Or col < 2 Then Exit Sub
'出力範囲を一旦クリア
Cells(1, 1).Offset(rw + 1).Resize(Rows.Count - rw - 1).EntireRow.Delete
Set Source = Cells(3, 1).Resize(rw - 2)
Set rng = Source.Offset(rw)
'各列毎に表を作成
For c = 2 To col
rng.Value = Cells(1, c).Value
rng.Offset(, 1).Value = Cells(2, c).Value
rng.Offset(, 2).Value = Source.Value
rng.Offset(, 3).Value = Source.Offset(, c - 1).Value
' 罫線処理
With rng.Resize(, 4)
Borders.LineStyle = xlContinuous
Borders.Weight = xlMedium
Borders(xlInsideVertical).Weight = xlThin
Borders(xlInsideHorizontal).Weight = xlThin
End With
Set rng = rng.Offset(rw - 2)
Next c
End Sub
fujillin様、アドバイス及びマクロ化ありがとうございます。
返信頂いた内容を理解するまでに時間がかかりそうです。
勉強を含め、トライしてみます。
どうしてもわからないときには、またご質問させていただきます。
ありがとうございました。
No.4
- 回答日時:
添付画像の上表の開始位置は、A1セルですよね?
下表は上表と同じシートにあって、10行目からで良いのですよね?
データ量が広大とのことですが、増えるのは車名ですよね?
停留所は固定で、増えないですよね?
上記の前提で良ければ、次の数式を入力してから下へオートフィルでコピーすれば行けると思います。ちなみに、D10セルは書式設定でお好みの日付としてください。
A10セル =INDEX($1:$1,1,(ROW(A1)-1)/5+2)
B10セル =INDEX($2:$2,1,(ROW(A1)-1)/5+2)
C10セル =INDEX($A:$A,MOD((ROW(A1)-1),5)+3,1)
D10セル =IF(INDEX($1:$7,MOD((ROW(A1)-1),5)+3,(ROW(A1)-1)/5+2)="","",INDEX($1:$7,MOD((ROW(A1)-1),5)+3,(ROW(A1)-1)/5+2))
ママチャリ様、返信ありがとうございます。
表は同じシートに存在します。
試してみたところ、うまくいきそうです。
但しスケジュールがエクセルシート毎に複数存在しており、そのシート毎に停車駅(八重洲、新宿・・・)数が変化致します。
ママチャリ様にお願い致します。
停車駅や車名の増減があるときは、数式のどの部分を変更すればよいのかをご教示頂けませんでしょうか?
何卒宜しくお願い致します。
No.2
- 回答日時:
こんにちは
ご質問の内容はマクロで処理可能と思いますが、
>マクロの知識も皆無で、大変困っております。
ということと
>データ量が膨大で毎日更新する為、コピペでは間に合いません。
の両方を考えると、将来ささいな変更などが出た場合に、お手上げ状態になりかねません。
日常業務とのことですので、業務の効率化のために帳票の作成方法や形式、処理方法などを見直す方がよろしいのではないでしょうか?
アドバイスありがとうございます。もとデータが既に存在しており、そのデータを利用する条件が必須でしたので。今後の仕事の進め方の参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで横書き50行の漢字テストデータを縦書きのテスト問題にしたい。 6 2022/04/27 15:03
- Excel(エクセル) エクセルでのマクロを使ったデータの並べ替え 3 2022/12/03 18:54
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Excel(エクセル) マクロ 2行ごとの並び替えについて 4 2022/12/14 12:27
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) VBA横に並んでいるデータを縦に並ぶデータにしたいです。 4 2023/08/09 08:53
- Excel(エクセル) 同じ品番のマスタで最新日付のものに〇印を入れたい 3 2023/03/31 17:45
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 の購入の誘いが...
-
プロダクトキー
-
Python CSVファイルについて
-
MF-COBOL COBOL 違い
-
教えてgoo ログアウト方法
-
Windows serverでマルチキャス...
-
Windowsバッチファイルでリモー...
-
コマンドプロンプトまたはpower...
-
三菱 Got 1000
-
【至急】.htaccessによるディレ...
-
MacのPCでわファイルを検索した...
-
画面設計と帳票設計の違いを教...
-
マイクロソフトから通知メール...
-
バッチファイルで特定のファイ...
-
「ネット検索だけでは十分な情...
-
QRコード運用方法について詳し...
-
昔、銀行の入出金システムを開...
-
企業のサイトのクッキーを許可...
-
アイデア・発想になります。セ...
-
サイトURLの「intl/ja_jp/」に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MF-COBOL COBOL 違い
-
WindowsからSSHでサーバーにあ...
-
QRコード運用方法について詳し...
-
Microsoft 365 の購入の誘いが...
-
自作pcについて
-
Python CSVファイルについて
-
Windowsバッチファイルでリモー...
-
プロダクトキー
-
バッチファイルで特定のファイ...
-
三菱 Got 1000
-
Windows serverでマルチキャス...
-
マイクロソフトから通知メール...
-
エクセルを起動するとグレーな...
-
おんどとりWebStorage APIから...
-
なにこのQRコード?!!
-
【至急】.htaccessによるディレ...
-
bashでコマンドが見つかりませ...
-
教えてgoo ログアウト方法
-
セルフレジって何の意味がある...
-
コマンドプロンプトまたはpower...
おすすめ情報
データには空欄も存在します。空欄はそこに停車しない事になります。