以下にようにランダムな3桁の数字が並んでいるtxtファイルから、どの数字が何回出現したか、をスピーディに確認する方法はないでしょうか?
仕事でデータ分析のため上記の作業が必要なのですが、いつもはマニュアル作業で上から出てきた数字を片っ端からファイル内で検索かけて、終わった数字は空白に置き換えてファイルから消していくという方法でちまちまと集計しています。。
記録数が膨大な時はめちゃくちゃ無駄な作業に感じるので改善したいのですが、いい方法が思いつかず。。
txtをExcelに取り込んだりもしてみましたが、あまり変わりませんでした。
Excelの計算式でもマクロでも、その他プログラミングでも何でも良いのですが、良い方法はないでしょうか?
以前プログラミング教室に通っていたので、出来ることは確実だと思うのですが、当時の記憶がすべて飛んでしまいました。。
この分野に詳しい方、お知恵を拝借できますと幸いです!
例)
516
515
502
544
599
515
...
→この場合、515以外は一回出現、515は2回という情報を知れれば大丈夫です。
A 回答 (10件)
- 最新から表示
- 回答順に表示
No.9
- 回答日時:
No.7
- 回答日時:
自分ならawkでコマンドライン一発かな…
awk '{hist[$1] +=1}END{for(a in hist){print a, hist[a]}}' 3桁数字のファイル.txt
結果は
502 1
515 2
516 1
544 1
599 1
No.5
- 回答日時:
txtファイルの形、規模がいまいちわかりませんが コピーしてExcelのシートA1セルに貼り付けると 例のように行方向で改行コードでセル別に値が入りますか?
具体的な数式やコードを書いてよいのかわかりませんが・・・
入るとした場合(大前提)
Unique関数が使えるExcelバージョンの一例
A1にテキストを貼り付け
B1セルに=UNIQUE($A$1:$A$100)
C1セルに=COUNTIF($A$1:$A$100,$B1)
C1セルを下方向にフィルハンドル
(とりあえず100行)
これをVBAで行う場合
A1セルにペーストする シートのシートタグを右クリックして コードの表示をクリック
表示された場所に
Sub Numbers_count()
Dim intNumbers()
Dim Rng As Range
Set Rng = Range("A1", Cells(Rows.Count, "A").End(xlUp))
intNumbers = WorksheetFunction.Unique(Rng)
ReDim arrCount(UBound(intNumbers))
Dim k As Variant, n As Long
For Each k In intNumbers
arrCount(n) = WorksheetFunction.CountIf(Rng, k)
n = n + 1
Next
Range("B1").Resize(UBound(intNumbers)).Value = intNumbers
Range("C1").Resize(UBound(arrCount)).Value = WorksheetFunction.Transpose(arrCount)
End Sub
コピペ後 Numbers_count を実行
No.4
- 回答日時:
No1です。
excel-vba(マクロ)になります。以下のマクロを標準モジュールに登録し、実行してください。
実行すると、ファイル選択用のダイアログボックスが表示されるので、処理対象となるテキストファイルを選択してください。
そうすると、実行結果が、Sheet1に出力されます。(A列が数字、B列が出現回数)
(Sheet1は予め、用意しておいてください)
テキストファイルの拡張子は, ".txt" の前提です。
Option Explicit
Public Sub 出現数カウント()
Dim fname As String
Dim ws As Worksheet
Dim dicT As Object
Dim text As String
Dim key As Variant
Dim wrow As Long: wrow = 1
Set ws = Worksheets("Sheet1")
ws.Cells.ClearContents
Set dicT = CreateObject("Scripting.Dictionary")
fname = Application.GetOpenFilename("テキストファイル,*.txt")
If fname = "False" Then Exit Sub
Open fname For Input As #1
Do Until EOF(1)
Line Input #1, text
If dicT.exists(text) = False Then
dicT(text) = 1
Else
dicT(text) = dicT(text) + 1
End If
Loop
Close (1)
For Each key In dicT.keys
ws.Cells(wrow, 1).Value = key
ws.Cells(wrow, 2).Value = dicT(key)
wrow = wrow + 1
Next
If wrow > 1 Then
ws.Range("A1:B" & wrow - 1).Sort key1:=Range("B1"), order1:=xlDescending, Header:=xlNo
End If
MsgBox ("完了")
End Sub
No.3
- 回答日時:
こんにちは
以下の手順ではいかがでしょうか。
1)エクセルで読み込み
(A列に取り込めるとします)
2)A列をC列にコピペ
3)C列を選択し、「データ」-「データツール」-「重複の削除」を選択
4)D1セルに
=COUNTIF(A:A,C1)
を入力し、D1セルを選択状態で、右下のフィルハンドルをダブルクリック
(入力した式が、下方にフィルコピーされます)
以上で、D列に出現回数が表示できます。
>以前プログラミング教室に通っていたので、出来ることは確実だと
>思うのですが、当時の記憶がすべて飛んでしまいました。。
何度も同じことを行うのでプログラム化したいというのであれば、上記の操作を「マクロの記録」で記録しておけば、ほぼ再利用可能なマクロを作成できます。
No.1
- 回答日時:
rubyかpythonかperlのどれかがあなたのPCにインストールされていますか。
そうであれば、簡単です。
どれもインストールされていないなら、excel(vba)になります。
ありがとうございます。
現状はどのプログラミング言語もインストールしていないです。
学校で学んだのはJavaだったのですが、結構使えるようになるまで初期設定面倒だった記憶があり、上げて頂いた言語の中で無料で簡単な設定ですぐ使用できる言語はありますか?
でもExcelで出来るのなら、それが一番有り難いです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/11/09 11:51
- CAD・DTP AutoCad 大きさの違う文字を描く時、前の文字の終わり点を知りたい 3 2024/03/06 12:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルで比較 かつ 部分一致について
Excel(エクセル)
-
長期休みの関数はありますか
Excel(エクセル)
-
Excelの関数に関して質問です。 1行目の関数を下まで反映させる場合、ベーシックなやり方としては1
Excel(エクセル)
-
-
4
Excelでエラーが出るのですが・・・
Excel(エクセル)
-
5
データの入力規則 Excelです。 例えば、 C1セルに、 A列のデータ(B列にあいうえお"と入っ"
Excel(エクセル)
-
6
エクセルで
Excel(エクセル)
-
7
表示されている人数だけを数えたい!!
Excel(エクセル)
-
8
エクセルで2桁から5桁の数字があります。その数字のダブリを解消する方法を教えてください。
Excel(エクセル)
-
9
FormulaR1C1の 相対参照式のコピー
Excel(エクセル)
-
10
Excelで、10000,20000,30000と表示されているのですが、時々10000,20000
Excel(エクセル)
-
11
Excel 連番を入力する方法
Excel(エクセル)
-
12
列を増やさずに、月だけの件数を求める場合
Excel(エクセル)
-
13
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
14
Excelでこういう年を切り替えられる簡易なカレンダーを作ったのですが、 年や月を変えると、色が付い
Excel(エクセル)
-
15
excelの不要な行の削除ができない!
Excel(エクセル)
-
16
Excelの関数に関する質問です
Excel(エクセル)
-
17
Excelでの判別方法
Excel(エクセル)
-
18
VBA(えくせる)ってなんでメンテできない人が多いんですか?
Excel(エクセル)
-
19
エクセルで列をアルファベットではなく、数字の表示にするメリットって、なんでしょうか?
Excel(エクセル)
-
20
エクセル関数について教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
エクセルでファイルを開かずに...
-
CPU使用率が100%となっ...
-
Excel 2枚目のブックが開かな...
-
エクセルマクロ(vba)のFSO.Open...
-
ファイル内にある数字の出現回...
-
エクセルマクロ 数式【VLOOKUP...
-
パワーポイントをエクセルファ...
-
エクセルで「500時間」を「何日...
-
EXCELで上書き保存しないと反映...
-
エクセルでファイルを閉じても...
-
Excel画面の自動更新 Excelファ...
-
エクセルVBAでアクセスファイル...
-
CSVファイルでVBAを動かす方法
-
エクセルのカメラ機能を、700個...
-
エクセル0:00と表示される原因
-
xl
-
エクセルを上書き保存したのに...
-
エクセルに変な矢印が出てクリ...
-
Accessのクエリの結果を、既存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
エクセルでファイルを開かずに...
-
ファイル内にある数字の出現回...
-
Excel 2枚目のブックが開かな...
-
CPU使用率が100%となっ...
-
複数のtxtの特定部分を抽出し、...
-
エクセルマクロ 数式【VLOOKUP...
-
マクロで別ファイルのシートコ...
-
エクセルで他のファイルのセル...
-
複数のExcelfファイルをを1つの...
-
PhotoshopでExcelのファイルが...
-
エクセルでハイパーリンクが貼...
-
VBAで集計元のファイル名を取得...
-
MATLABでcsvファイルを読み込も...
-
one drive からExcel onlineを...
-
EXCELを複数起動して別ファイル...
-
Access2010について
-
EXCEL:二つのエクセルファイル...
-
Excel2000でフォルダを移動する...
-
ある特定のExcelファイルの起動...
おすすめ情報