
No.4ベストアンサー
- 回答日時:
Excelにデータが入力されていると仮定しています。
場所はA1から行方向で、「あいう,」、「いうえ,」などは前データとは1行開いているとしています。最初の「あいう,」はA1、「20010629,」はA7にあることになります。
VBAでユーザー定義関数を作りました。 =SuchiGokei(A1,A7)のように入力します。
直接文字を入れる場合は =SuchiGokei("あいう",20010629) のように入力します。
ツール→マクロ→Bisual Basic Edotor でVBE画面に移って標準モジュールを挿入し下記マクロを貼り付けて下さい。セルに変更があれば再計算するようにしてあります。
Public Function SuchiGokei(Moji As String, Ymd As String)
Dim rg As Range 'データの登録された最初の位置
Dim rw As Long '行カウンタ
Dim cMoji As String 'セルにある最初の文字
Dim dt As String 'セルにある日付または数値
Dim OK1 As Boolean '文字が一致したらTrue
Dim OK2 As Boolean '日付が一致したらTrue
Dim Total As Long '数値の累計
If Right(Moji, 1) <> "," Then Moji = Moji & ","
If Right(Ymd, 1) <> "," Then Ymd = Ymd & ","
Application.Volatile '自動計算関数にする
Set rg = Range("A1")
With rg
cMoji = .Offset(rw, 0): rw = 0 'ブロックの最初の文字を読む
While cMoji <> "" '未入力なら終わり
OK1 = False
If cMoji = Moji Then OK1 = True '一致した!
rw = rw + 1: dt = .Offset(rw, 0) '日付または数値を読む
While dt <> "" '未入力ならブロックの終わり
Select Case True
Case Right(dt, 1) = "," '右にカンマがあれば日付
OK2 = False
If dt = Ymd Then OK2 = True '一致した!
Case Left(dt, 1) = "," '左にカンマがあれば数値
If OK1 = True And OK2 = True Then
Total = Total + Val(Mid(dt, 2)) '合計する
End If
End Select
rw = rw + 1: dt = .Offset(rw, 0) '次の日付または数値を読む
Wend
rw = rw + 1: cMoji = .Offset(rw, 0) '次のブロックの最初の文字を読む
Wend
End With
SuchiGokei = Total
End Function
中身はさっぱり理解できませんでしたが、
何回かトライしてみたら出来ました。
なにかとんでもないお手数をお掛けした
ようで申し訳ありません。
本を買って意味を理解しようと思います。
ありがとうございました。
No.3
- 回答日時:
>文字が同一であるものの同じ日付の一行下の数字
>を合計したいのですが。
このレベルでは理解していて、その考えを踏まえてNo.2の回答を書いています。
アルゴリズムを作成する大きな流れのみ書きました。
言語は何か分からないのですが、もっとコーディングレベルの回答を書いた方がいいですか?
コメントに書いてもらえれば作成しますが、用事があるので時間が多少かかるかもしれません。
No.1
- 回答日時:
この質問でなに回答してほしいのかよく分からないのですが?
データを見た感じでは、
文字、日付、数値
と言う形にまとめればいいと思うのですが、
どうゆう条件の中で何を変えようとしているのかよく分かりません?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 日付を重複させずに数えたい 4 2022/12/04 16:26
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- Excel(エクセル) 日付の照合でFALSEになります。 3 2023/04/17 14:06
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
- 数学 賃料と専有面積のデータが60部屋分ほどがあり、 賃料÷専有面積(=1㎡あたりの賃料)の数式で計算する 2 2023/02/18 20:33
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- 計算機科学 エクセルのデータの表すことについて 2 2023/03/05 20:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
こんな扱いにくいデータ形式ど...
-
【ピボットテーブル】4月から翌...
-
アクセスで日付を入力すると曜...
-
SQL文に関するとある問題について
-
Excelで、Accessで使用できる「...
-
今週分だけ表示させたい
-
エクセル-過去6カ月分の合計を...
-
SQL Server2005のクエリで「今...
-
Excel→Accessへの日付データの...
-
月毎、日別に条件に当てはまる...
-
前のレコードの合計に現レコー...
-
ビュー定義をプログラムで動的...
-
アクセス:既定値に土日含まず...
-
Excleピボットでデータのない部...
-
Accessの日付時刻型から日付、...
-
差し込み印刷の日付表示について
-
VBA 別シートの同じ日付の欄に...
-
アクセス97のVBAで日付項目をヌ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
VBA 別シートの同じ日付の欄に...
-
アクセスで日付を入力すると曜...
-
Excel→Accessへの日付データの...
-
Accessの日付時刻型から日付、...
-
指定日付を起点にして最新日付...
-
【vba】日付の形式が勝手に変わ...
-
BCPでCSV内の文字列をテーブル...
-
【エクセル】指定した日付に一...
-
アクセスで月単位の抽出
-
Accessのデータ型の日付/時刻型...
-
アクセス:既定値に土日含まず...
-
ACCESSの空白をカウントする
-
エクセル-過去6カ月分の合計を...
-
Accessで日付の比較がうまくい...
-
ビュー定義をプログラムで動的...
-
Access クエリで、レコードの無...
-
アクセス97のVBAで日付項目をヌ...
おすすめ情報