advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 3685 for グラフ (0.002 sec.)
[[20230309190422]]
#score: 3272
@digest: 4eb272ca03a06e14bc66525f7076e0fb
@id: 93720
@mdate: 2023-03-16T11:35:45Z
@size: 5384
@type: text/plain
#keywords: 素3 (32129), 素2 (32048), 素10 (29523), 素4 (29523), 素6 (29523), 素8 (29523), 素7 (28021), 素9 (28021), 素5 (28021), 素1 (26088), 要素 (21862), total (3683), ブロ (3338), 茶様 (3306), マ区 (3213), 白茶 (2569), 方針 (1892), split (1353), 整理 (1342), トテ (1333), ピボ (1282), case (1278), 2023 (1206), ロッ (1204), 区切 (1184), 分割 (1147), ンマ (1129), カン (1042), ーブ (771), 不要 (763), 提示 (754), テー (750)
『csv データ整理』(かたじん)
10行2列で一つのブロックのデータが何行も連なっております。 時刻歴のグラフを作成したいので、要素毎にデータを整理したいです。 具体的には元データ CASE NO . = 1 要素1 150 要素2 140 要素3 135 要素4 165 要素5 132 要素6 150 要素7 120 要素8 220 要素9 180 要素10 150 TOTAL 160 CASE NO . = 2 要素1 151 要素2 141 要素3 136 要素4 166 要素5 133 要素6 151 要素7 121 要素8 221 要素9 181 要素10 151 TOTAL 161 … … 整理後 CASE NO . = 要素1 要素2 要素3 要素4 要素5 要素6 要素7 要素8 要素9 要素10 1 150 140 135 165 132 50 120 220 180 150 2 151 140 135 165 132 50 120 220 180 150 … 以上の様に整理したいです。 Caseは600ほど、要素数は4-10の間で変わります。 VBAで何とかならないでしょうか。Powerqueryで対応しても大丈夫です。 何卒よろしくお願いいたします。 < 使用 Excel:Microsoft365、使用 OS:Windows10 > ---- Sub 想像で() Const CSV_NAME = "C:¥xxx¥20230309.csv" Dim h As Range, a As Range, l As String, v, r(0 To 10) As Variant, i As Long Set h = [A1].Resize(, 11) h.Value = [{"CASE NO","要素1","要素2","要素3","要素4","要素5","要素6","要素7","要素8","要素9","要素10"}] Set a = h With CreateObject("Scripting.FileSystemObject").OpenTextFile(CSV_NAME) Do Until .AtEndOfStream l = .ReadLine If l Like "CASE NO*" Then If r(0) Then a.Value = r Erase r Set a = a.Offset(1) v = Split(l, "=") r(0) = CLng(v(1)) ElseIf Not l Like "TOTAL*" Then v = Split(l) For i = 1 To 10 If v(0) = h.Cells(1, i + 1).Value Then Exit For Next If i > 0 And i < 11 Then r(i) = v(1) End If Loop .Close End With End Sub (白茶) 2023/03/09(木) 20:04:23 ---- ていうか、中味が全然csvじゃないという... ^^; (白茶) 2023/03/09(木) 20:06:15 ---- 白茶様 コメントありがとうございます。 回したところ、 r(0) = CLng(v(1)) の位置でエラーが出ます。 型が一致しないとのことなので、 vをVariantで定義しなおしましたが、同じ症状が出てしまいます。 (かたじん) 2023/03/10(金) 13:43:01 ---- これ、差分で元の書き込み確認したら=と数字の間タブになってるけども実際のデータもスペースではなくタブになっているんだろうか? (ねむねむ) 2023/03/10(金) 13:56:29 ---- あー、すんません。レス見落としてましたwww まぁ何で分割するかくらいは、ご自分でご判断頂けると思いますので、私からは↓だけ。 VBA関数:指定文字で分割して配列にする(Split) | Excel作業をVBAで効率化 https://vbabeginner.net/split/ (白茶) 2023/03/10(金) 23:19:05 ---- 横から失礼します。 (1)提示のデータはExcelに読み込んだあとですか? A列 B列 CASE NO . = 1 要素1 150 要素2 140 要素3 135 と正確に列の位置を示したほうがよいと思う。 (2)元のファイル形式は何でしょうか。文字通りのカンマ区切りなら、 CASE NO . =,1 要素1,150 要素2,140 ですか?それともタブ区切りデータなら、そのように書いてください。 (3)提示いただいたコードについては、区切り文字を明確にして、 Split関数のところをそれに沿ったものに変更する必要があります。 また、最後のブロックの書き出しを追加したほうがよいと思います。 なお、元のファイルがSHIFT-JISなのか、UTF-8なのかによってファイル読み込みが変わってきます。 もしUTF-8なら下記が参考になるでしょう。 http://officetanaka.net/excel/vba/file/file10.htm (4)提示のものがシートに既にあり、それを出発点にするなら、 ピボットテーブルを使うのもアリかと思います。 A列にNo列を挿入し、簡単な式でNoを設定できます。 (CASE NO . =が現れる都度、Noを更新する処理を入れるだけです。) あとは、ピボットテーブルの基本的処理で求める表が作れます。 もちろんVBAにすることもできるでしょう。 (γ) 2023/03/11(土) 06:55:31 ---- 皆様コメントありがとうございます。 確認遅れまして申し訳ありません。 >白茶様 CASE NOをフックにしてブロックを分割しているのですね、 参照先確認しまして、split関数の意味が少し理解出来ました。 ありがとうございます。 >ねむねむ様、γ様 (1) 提示データはエクセルでカンマ区切りで開いた後のものになります。 掲示板での質問の仕方が不確かなもので申し訳ありません。 (2)カンマ区切りです。 (3)最後のブロックはTOTALのことでしょうか。 不要なので飛ばしていただければ幸いです。 形式はUTF-8です。 (4)ピボットテーブルにてNoの列を追加 "CASE NO"をcountifしていく関数をセルに追記する形でよろしいでしょうか。 (かたじん) 2023/03/16(木) 19:39:58 ---- | (3)最後のブロックはTOTALのことでしょうか。 | 不要なので飛ばしていただければ幸いです。 CSVを直接コードで操作しない方針であれば不要の議論ですが、 念のため当方の趣旨だけを以下に書いておきます。 提示されたコードは、CASE NOがあったときに、それまでに保持していたものを書き出す実装なので、 最後の10個のデータはCASE NOに出会わないので書き出される機会を失っていますね、という指摘でした。 CSVを読み込む段階で処理するのではなく、読み込む部分は現行どおりで、 そのあとに操作する方針だということですね。 それなら、繰り返しになりますが、ピボットテーブルがよいかと思います。 | "CASE NO"をcountifしていく関数をセルに追記する形でよろしいでしょうか。 (私は計算量のもっと少ない別の方法を考えていましたが、 特にこだわりはなく、その方式でよいと思います) (γ) 2023/03/16(木) 20:35:45 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202303/20230309190422.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97000 documents and 607841 words.

訪問者:カウンタValid HTML 4.01 Transitional