!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part71
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f5f-nIK+)
2021/05/25(火) 12:48:01.06ID:mepUVc/i02デフォルトの名無しさん (ゲマー MM06-mK7O)
2021/05/25(火) 14:39:07.41ID:Eok9KjPbM ↑おつ
3デフォルトの名無しさん (アウウィフ FFc7-4Cki)
2021/05/25(火) 15:29:32.37ID:9esnpvbXF >紙の表を目で追いながら画面を見ずにどんどん入力するとか普通にある
下手に補完機能とか発動するとうざいよな
下手に補完機能とか発動するとうざいよな
4デフォルトの名無しさん (ワッチョイ 0eda-cE2x)
2021/05/26(水) 13:42:07.91ID:LJxSJ8rb0 時々画面も見たほうがいいぞ
5デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/26(水) 18:56:30.36ID:mkbiTVsAd 画像のような処理をするコードを書きたいのですが・・・
整理番号に対してアルファベットがランダムに振られており、それをまとめるというようなコードです。
ただし、まとめたい整理番号は行が飛び飛びになっており固定されております。
forやifなどを少しかじっただけのため、頑張ってみましたが全くできませんでした。
何卒宜しくお願いいたします。
https://i.imgur.com/w5P4FX4.jpg
整理番号に対してアルファベットがランダムに振られており、それをまとめるというようなコードです。
ただし、まとめたい整理番号は行が飛び飛びになっており固定されております。
forやifなどを少しかじっただけのため、頑張ってみましたが全くできませんでした。
何卒宜しくお願いいたします。
https://i.imgur.com/w5P4FX4.jpg
6デフォルトの名無しさん (ワッチョイ 9a8e-/g3G)
2021/05/26(水) 19:27:52.83ID:DrPaJmjh0 いつものあいつ
7デフォルトの名無しさん (アウアウウー Sac7-qxUy)
2021/05/26(水) 20:40:38.47ID:YzhdN1Yma のんびりやろうぜ
8デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/26(水) 20:43:32.54ID:FIJmCPPEH >>5
法則がまったくわからん
法則がまったくわからん
9デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/26(水) 20:57:38.79ID:mkbiTVsAd10デフォルトの名無しさん (ブーイモ MM26-ZtF8)
2021/05/26(水) 22:04:20.25ID:VymsA87rM ID:mkbiTVsAdはとにかく繊維質と水分を十分に摂って山ほどウンコしろ
そうすればこのスレを必要とする事も無くなるだろ
そうすればこのスレを必要とする事も無くなるだろ
11デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
2021/05/26(水) 22:11:44.89ID:XGTO2klA0 入力データは違うけど、Ruby で作ってみた
require 'csv'
tmp_hash = { }
input_ary = CSV.read( "input.csv" ) # 2次元配列
input_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end
result_ary = tmp_hash.map do |num, hash|
ary = hash.map { |str, b_true| str }
[ num, *ary ] # 配列展開
end
# p result_ary # 2次元配列
# [["1", "A"], ["2", "B", "C"], ["3", "X"]]
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
1,A
2,B,C
3,X
require 'csv'
tmp_hash = { }
input_ary = CSV.read( "input.csv" ) # 2次元配列
input_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end
result_ary = tmp_hash.map do |num, hash|
ary = hash.map { |str, b_true| str }
[ num, *ary ] # 配列展開
end
# p result_ary # 2次元配列
# [["1", "A"], ["2", "B", "C"], ["3", "X"]]
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
1,A
2,B,C
3,X
12デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/26(水) 22:16:14.20ID:FIJmCPPEH13デフォルトの名無しさん (ワンミングク MM8a-ZbgT)
2021/05/26(水) 22:55:47.72ID:Ca/oJ0kCM いつものあいつ=ruby馬鹿
14デフォルトの名無しさん (ブーイモ MM26-AlZ6)
2021/05/26(水) 23:30:39.65ID:CbYT3Zs7M >>5
Dictioraryを使わずにデータを1列目〜2列目、出力先を4列目以降であると仮定する
配列 = Range(Cells(出力先の1番上の行,4),Cells(出力先の1番下の行,4))
For i = LBound(配列,1) to UBound(配列,1)
For j = データの一番上の行 to データの一番下の行
If Cells(j,1).Value = 配列(i,LBound(配列,2) Then
If 配列(i,UBound(配列,2) <>″″ Then
ReDim Preserve 配列(LBound(配列,1) to UBound(配列,1),LBound(配列,2) to UBound(配列,2)+1)
End If
For k = LBound(配列,2) to UBound(配列,2)
If 配列(i,k) = Cells(j,1),Value Then
Exit For
Else If 配列(i,k) = ″″ Then
配列(i,k) = Cells(j,1),Value
End If
Next
Next
Next
ってやって出力するとか?
思いつきで適当にやったから動かなかったらゴメンね
Dictioraryを使わずにデータを1列目〜2列目、出力先を4列目以降であると仮定する
配列 = Range(Cells(出力先の1番上の行,4),Cells(出力先の1番下の行,4))
For i = LBound(配列,1) to UBound(配列,1)
For j = データの一番上の行 to データの一番下の行
If Cells(j,1).Value = 配列(i,LBound(配列,2) Then
If 配列(i,UBound(配列,2) <>″″ Then
ReDim Preserve 配列(LBound(配列,1) to UBound(配列,1),LBound(配列,2) to UBound(配列,2)+1)
End If
For k = LBound(配列,2) to UBound(配列,2)
If 配列(i,k) = Cells(j,1),Value Then
Exit For
Else If 配列(i,k) = ″″ Then
配列(i,k) = Cells(j,1),Value
End If
Next
Next
Next
ってやって出力するとか?
思いつきで適当にやったから動かなかったらゴメンね
15デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 01:00:26.94ID:hl6lLSzud >>12
移動後の整理番号の位置は決まっているだけ という話なのですが... というかそれは書いてあるのですが
移動後の整理番号の位置は決まっているだけ という話なのですが... というかそれは書いてあるのですが
16デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 01:01:43.36ID:hl6lLSzud17デフォルトの名無しさん (ラクッペペ MMb6-9F53)
2021/05/27(木) 08:26:53.22ID:f+HvaIKyM >>5
ピボットテーブルでいいやん
ピボットテーブルでいいやん
18デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 11:03:53.72ID:hl6lLSzud19デフォルトの名無しさん (スプッッ Sdf3-FygT)
2021/05/28(金) 11:25:16.55ID:EVw9ke/Wd20デフォルトの名無しさん (ブーイモ MM75-fghp)
2021/05/28(金) 12:11:04.92ID:akPeanIUM21デフォルトの名無しさん (ワッチョイ 49cc-f5pr)
2021/05/28(金) 14:13:31.59ID:wSpOVLhu0 A列がKey、B列がItemが入っていたとして、一括でDictionaryに代入する方法はありますか
今はForで処理していますが、
For r = 1 To 10000
dic.Add Cells(r, 1), Cells(r, 2)
Next r
だと読み込みに時間がかかり、配列のほうが早いくらいです
今はForで処理していますが、
For r = 1 To 10000
dic.Add Cells(r, 1), Cells(r, 2)
Next r
だと読み込みに時間がかかり、配列のほうが早いくらいです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎますね」 [冬月記者★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★2 [七波羅探題★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- 【速報】年収の壁の自民案判明、26年は168万円 [蚤の市★]
- 「ワールドトリガー」原作1話から完全新作アニメ化、よりパワーアップした1stシーズンとして [爆笑ゴリラ★]
- 自ら「パンセクシュアル」だと明かし、東由貴・東京都議(立憲民主)が「パートナーシップ」施策の充実求める:東京新聞 [少考さん★]
- 中国GDP年率5%に上方修正へ、一方日本は景気は緩やかに回復してるのにマイナス2.3%に転落 [709039863]
- 【悲報】高市政権、中国軍機のレーダー照射について国際社会に発信へ [115996789]
- 高市首相「私は高校生扶養控除の縮減反対だけど、自民党の一部議員が勝手に減らそうとしてるの…🥺」 [931948549]
- お昼休みなので>>2のキャラをかいてあそぶ
- 【高市速報】中国、世界の敵になる [308389511]
- 【悲報】高市「自分の身は、自分で守れるはずよ!😤」地震への警戒を呼びかける【syamu内閣】 [359965264]
