No.1
- 回答日時:
こんにちは
えっと、回答するような立場じゃないんだけど、いま質問したついでに他のスレッド見てたら目に入ったので・・・
んで、処理系によって違うし言語も書いてないのであれです、コードは書けませんが、目的の数値を正規表現で抽出して比較関数にぶち込めばいいんでないかと。ま、データは配列格納なのかな。言語が不明なのでわかりません。
当方、WINDOW初心者です。ん?これOSの問題か?
すみません。せっかくなんですけど
まったく意味がわかりませんでした。。。
soudan1989さんが初心者とおっしゃるなら
私まだ生まれてもない赤ん坊以下ですね。。。
No.2
- 回答日時:
この抽出を行うには数式では不可能の様。
残された方法は、この抽出作業を人が行う際の思考手順を「VBA」というExcelなどで働くプログラム言語で表現し、そのプログラムの起動操作を人が行い、抽出作業をプログラムに行わせる方法です。
その為には
(1)プログラム言語をExcel内に書く方法を知ること
(2)そのプログラムを起動する方法を知ること
(3)「VBA」なるプログラム言語を知ること
が必要です。
(1)は、http://excelvba.pc-users.net/fol1/1_1.html等を参考に(2)はhttp://www.officepro.jp/excelvba/ini/index3.html等を参考にしたら容易に習得できます。
(3)は自身にあった本を探して根気強く学習するのが良いでしょう。しかし(3)は、長期間を要しますから、当質問に対するプログラム例を以下に参考に掲げます。コピー&貼り付けしてお試し下さい。
Sub test()
Dim r As Long
Dim p, su As Integer
Dim dt, moji As String
Columns("C:E").ClearContents
Cells(1, "C").Value = "文字列": Cells(1, "D").Value = "数値": Cells(1, "E").Value = "抽出"
For r = 2 To Range("B65536").End(xlUp).Row
dt = Cells(r, "B"): su = 0
For p = 1 To Len(dt)
If IsNumeric(Mid(dt, p, 1)) = True Then
su = su * 10 + Val(Mid(dt, p, 1))
Else
moji = Left(dt, p)
End If
Next p
Cells(r, "C").Value = moji
Cells(r, "D").Value = su
Next r
Columns("A:E").Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=True
For r = 2 To Range("B65536").End(xlUp).Row
If Cells(r, "C") <> Cells(r - 1, "C") Then
Cells(r, "E").Value = "◎"
End If
Next r
Columns("A:E").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess
End Sub
しばらく仕事が忙しくのぞけずにいました。
やっと作業ができそうなので来てみたら
すばらしい回答ありがとうございます!!!
関数で簡単にできそうな気がしていたのですが
私にとっては相当難しい作業です。。。
VBAのほうは本当に初歩の初歩の初心者なので
ちょっと行列を変えようとしただけで
まったく思うように動いてくれなくなりました。。。
そこでご面倒おかけしますが
お時間あるときにでもプログラムの概要
(この行はこんな意味、などざっぱなもので結構です!)
を教えていただけると助かります!
どうぞ宜しくお願いします!
No.3ベストアンサー
- 回答日時:
No.2です。
OkWAveの文字数制限により詳しくは説明しきれません。概略説明になります。No2にて回答のVBAの概略は以下の通りです。
1行→test: この処理に名づけたVBAの名前、VBAの処理内容にマッチした好きな名前を付けられます。
2~4行→Dim はVBAで使う変数の種類を定義する挨拶文
Dim とAs の間は、VBAで使われる変数名で何を指しているか推測しやすい文字を採用します。2行の”r”はシート内の行番号(row)のイニシャル”r”を採っています。
Long、 Integer、Stringは変数の種類で、夫々、大きな数値、整数、文字を示しています。
5行→C~E列の内容を消去
6行→1行、C~E列に項目名(「文字列」etc)を書き込む
7行~25行→Excelシートの2行からB列の最終行の各行について順次1行ずつVBAの8行から 17行までの処理を繰り返し行いなさいの意味
8行→dtは B列の各セルに書かれたデータ、su=0は変数suに”0”を代入(リセット)を行う。因みにsuはデータ内の数値部分を抽出し格納する変数。
9行~15行→”dt” の1文字目から最終文字目(Len(dt))までVBAの10行から 14行までの処理を繰り返し行いなさいの意味、Len(dt)はB列の各セルに書かれたデータの文字数
10行→B列の各セルに書かれたデータに数字があったら11行目の処理をしなさい
11行→数字を数値化、Ex. dt=”○○123”ならsuは順次 “1”→”1×10+2” →”(1×10+2)×10+3”=123のように変化し、最後は数値”123”となる
12行”dt”内が数字以外なら13行の処理を行う
13行→”dt”内の左側文字部分を抽出し変数”moji”に代入する。
16行→C列に文字部分”moji”を書く
17行→D列に数値部分”su”を書く
19行~20行→文字部分昇順、数値部分降順に並び替え
23行→文字列が前の行と異なったら、その文字列の数値部分が最大を示す故E列に”◎”を記入
26行→A列の昇順に並べ替えを行い、元のデータ並びに戻す
27行→VBA処理の完了
詳しくは、VBAのHELP画面で勉強されますよう希望します。
<HELP画面の表示方法>
Moduleに貼りつけたVBAのコード内のスペース文字で区切られた単語 (Ex.”Dim”))内の任意の位置にマウスの「I」カーソルを合わせ「F1」キーを押すと、HELP画面が表示され、その語の説明と用例が表示されます。
小生は、この様にしてHELP画面を見ながら少しずつ用例を覚え、ホストコンピュータからExcel にダウンロードしてもらった1万件以上の受注データの分析にVBAを活用しました。
ばたばたしていてしばらく来れませんでした。
ご丁寧にありがとうございます!
じっくり読ませていただき
早速勉強させてもらいます!!
本当にありがとうございます!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
エクセルで作成した縦に長い表...
-
WEB上の表の列コピー選択方法は?
-
エクセルの列幅
-
Excel 表から値をさがして隣の...
-
【エクセル】行挿入で数式もい...
-
エクセルVBAで、行コピーを複数...
-
メモ帳からエクセルに貼り付け...
-
オートフィルタのリストを順番...
-
エクセルのリストから欠番を拾...
-
エクセルで空白行に上の行のデ...
-
ワードでアンケートの集計をし...
-
Excelピボットテーブルで 総計...
-
Excelの数式のコピーで列移動で...
-
エクセルで各ページに同じ文書...
-
エクセルに詳しい方、助けてく...
-
ACCESSのデータをEXCELに貼り付...
-
ピボットテーブル→参照が正しく...
-
エクセルの行と列の入れ替え
-
Excelの同一セル内にある、カタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
エクセルで作成した縦に長い表...
-
WEB上の表の列コピー選択方法は?
-
【エクセル】行挿入で数式もい...
-
Excelピボットテーブルで 総計...
-
オートフィルタのリストを順番...
-
メモ帳からエクセルに貼り付け...
-
Excel 表から値をさがして隣の...
-
エクセルVBAで、行コピーを複数...
-
Excelの数式のコピーで列移動で...
-
エクセルのリストから欠番を拾...
-
地番を順に並べたい。
-
ピボットテーブル→参照が正しく...
-
エクセルの関数の使い方 繰越...
-
Excelで検索結果をテキストボッ...
-
ワードでアンケートの集計をし...
-
エクセルの列幅
-
エクセルに詳しい方、助けてく...
-
マクロを強制的に有効にする方法
-
エクセルで各ページに同じ文書...
おすすめ情報