データが下記のような形式になっています。
「あいう」「20010629」のデータを合計したいのですが。
345+124+.................

あいう,
20010627,
20010627,
,123
20010628,
,234
20010629,
,345

いうえ,
20010627,
,589
20010629,
,987

あいう,
20010629,
,124

なお、日付は同一日付が複数あります。またない日もあります。

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 0
この回答へのお礼

中身はさっぱり理解できませんでしたが、
何回かトライしてみたら出来ました。
なにかとんでもないお手数をお掛けした
ようで申し訳ありません。
本を買って意味を理解しようと思います。
ありがとうございました。

お礼日時:2001/07/15 15:45

>文字が同一であるものの同じ日付の一行下の数字


>を合計したいのですが。

このレベルでは理解していて、その考えを踏まえてNo.2の回答を書いています。
アルゴリズムを作成する大きな流れのみ書きました。
言語は何か分からないのですが、もっとコーディングレベルの回答を書いた方がいいですか?
コメントに書いてもらえれば作成しますが、用事があるので時間が多少かかるかもしれません。
    • good
    • 0

文字と日付が該当する値の後の数値を集計するアルゴリズムがしりたいのでしたら、



頭からデータを読み込みながら
文字、日付、数値の判断を行って(ここが一番面倒なかんじですね)
決まった文字、日付の後に出てくる数値の集計を行うループを作ってあげれば
いいのでは?

この回答への補足

説明不足ですみません。
文字が同一であるものの同じ日付の一行下の数字
を合計したいのですが。

補足日時:2001/07/14 15:58
    • good
    • 0

この質問でなに回答してほしいのかよく分からないのですが?



データを見た感じでは、
文字、日付、数値
と言う形にまとめればいいと思うのですが、

どうゆう条件の中で何を変えようとしているのかよく分かりません?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QMS-wordで,ワイルドカードを用い,n人(1, 2, 3)を3人(1, 2, 3)に置換

ワイルドカードを用いた置換の仕方についてお伺いします.

用いているのはword for mac 2004です.

n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5)
n人(1, 2, 3, 4)や、n人(2, 3, 4, 5)や、n人(3, 4, 5, 6)

といったものを,

3人(1, 2, 3)や、3人(2, 3, 4)や、3人(3, 4, 5)
4人(1, 2, 3, 4)や、4人(2, 3, 4, 5)や、4人(3, 4, 5, 6)

という風に,nを()内の数字の個数に一度に置換したいのですが,

検索文字列は
n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5)の場合は

n人(?, ?, ?)

で検索できることはわかっているのですが,置換後の文字列はどのようにすればよいでしょうか?
ちなみに数字やn、カンマとその後のスペースは半角,括弧は全角です.

よろしくお願いします.

Aベストアンサー

ワイルドカードを使用した場合、()で閉じた内容が一つの式として認識
されますので、(n)が一つ目の式で「n」だけを条件にして、(人(?, ? ))
のようにすることで二つ目の式にして「(人(?, ? )」をまとまった式
にします。

検索条件にした式を参照するのが、\ 記号と式の順番である数字である
「\1」や「\2」のようなものを置換の条件にします。(半角で指定)
今回の場合は、最初の式を変えるので n=\1 ですから \1=3 になること
から、式をそのまま参照するときの \1\2 が 3\2 になるのです。

このように式を利用することで、特定の文字列を参照したときに、その
一部だけを置換する場合に効果的に利用できるようになります。
もっと条件が多い場合では、Wordの置換機能では無理な場合もあります
ので、その場合は正規表現ができるもので置換することになりますが、
今回は関係ないことなので具体的には説明しません。

ちなみにマクロについては、私に提示できる技量が現時点では無いので
回答しませんが、条件としては以下のようなものでマクロを組むことに
なると思います。

検索・置換の条件を指定してのマクロ
**************************************************************
検索する()内の数字の個数を数え、その個数を検索する対象にある
n と置き換えることで、個数が増えても一括で n を個数に置換する。
**************************************************************
これをマクロで組むことで、数字の個数が増えてもマクロが自動で置換
してくれると思います。

ワイルドカードを使用した場合、()で閉じた内容が一つの式として認識
されますので、(n)が一つ目の式で「n」だけを条件にして、(人(?, ? ))
のようにすることで二つ目の式にして「(人(?, ? )」をまとまった式
にします。

検索条件にした式を参照するのが、\ 記号と式の順番である数字である
「\1」や「\2」のようなものを置換の条件にします。(半角で指定)
今回の場合は、最初の式を変えるので n=\1 ですから \1=3 になること
から、式をそのまま参照するときの \1\2 が 3\2 になるのです。

この...続きを読む

QCtr+F4キーで画面が消えた後...

どなたかパソコン初心者の私に教えて下さい。
昨日会社でMOディスクの中のデータに入力中、Ctrl+F4キーを押してしまったら一度画面が消え(グレーに変わり)、「ファイルを保存しますか?」みたいなメッセージが出て
消そうと思った時じゃなかったので、データが消えたらまずいなと思い「はい」をクリックしたのですが、その後再度開こうと思っても開けませんでした。もしやと思い、別のフォルダの中も見ましたが保存されていませんでした。
ネットで調べてみるとこの操作をすると画面が消えるだけとの事ですが一体どうなってしまったのでしょうか?
データ自体全部削除されてしまったのでしょうか?
もし解かる方がいらっしゃいましたら教えて下さい。
よろしくお願い致します。

Aベストアンサー

Ctrl+F4はそのファイルを終了するときのショートカットキーです。(Ctrl+Wも同じです)ExcelでXを押して終了するのと同じです。沢山のファイルを開いていると開いた逆の順番で一つずつ終了していきます。最後にグレーの画面になります。データを変更したときは保存を変更しますかとでます。はいで上書き保存します。新規でデータの入力をした時はファイル名を付けて保存するの画面が開きます。名前を付けて保存する。(Excelの場合です。)
はいを押せばデータは更新、いいえを押せば変更前のデータのままで保存されます。
保存しますかで、はいを押されたのでしたらそのファイルは保存されています。
一度、データのファイル名でOM、コンピューターをファイル検索してみたらどうですか?

Q「定型句の挿入」をクリックで.........

Word2002 xp sp2 です
表示→ヘッダーとフッダー→定型句の挿入をクリックしますとフリーズします。タイトルバーは「応答なし」と出ます。原因がわかりません、教えて下さい

Aベストアンサー

該当すればご参考に。

マイクロソフト サポート技術情報 - 436036

[WD2002] 定型句を挿入すると応答なしになる
http://support.microsoft.com/default.aspx?scid=kb;ja;436036&Product=wd2002

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;436036&Product=wd2002

Qグラフのデータ範囲の更新(日付変更による)

いつもお世話になっています。
エクセルでグラフを作っていてTODAY()関数を用いて次のことをしたいのです。

A列には上から順に10月1日から10月30日が入力されています。

C列には上から1から15のランダムに数字が並んでいるとします。


今日は10月29日なので10月1日から28日までの棒グラフを作るものとします。つまり1日前までの統計を棒グラフにするわけです。
手作業で簡単に行うことができました。

日付が10月30日に変わりました。
自動的にグラフのデータ範囲に10月29日分のデータがグラフに加わるようにするためには、日付の変更をエクセルに認識させるTODAY()という関数が使えないかと悩んでおります。お分かりの方がいらっしゃいましたらご教示ください。

Aベストアンサー

こんにちは。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1704369
#2 で、私が書いたものは参考にはなりませんでしょうか?

その部分の参照範囲で、
=INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$A:$A),1),0,1)

COUNTA(Sheet1!$A:$A),1)の部分を、

 MATCH(TODAY(),A:A,1)-1

としてあげたらどうでしょうか?

QPWS+perlで,生成したHTML文書内の画像ファイルが表示されない

Win95+PWS+perlで,動的なHTMLページを生成しようとしています(掲示板です)。
そのなかで,次のように,GIFファイルを表示させています。

print \"<img src=\"\.\./img/abc\.gif\">";

ところが,画像ファイルが表示されずに「×」がでてしまいます。
生成されたHTML文書を見ると,(パスやファイルネームなどの)ミスはありません
しかも,abc.gifをダブルクリックして,いったん,ブラウザで表示させた後に,abc.gifを含む動的HTMLページをブラウザで表示させると,abc.gifは表示されるのです。
なお,パスは相対,絶対の両方を試してみましたが,ダメでした。

要領を得ない質問で大変申し訳ございませんが,もし,解決策等ございましたら,ご教示いただきたく,よろしくお願いいたします。

Aベストアンサー

相対パスで書かれてあるようですが、HTMLからの相対パスではなく、cgiの置いてあるディレクトリからの相対パスにしてみてもだめですか?

絶対パスがダメだったとのことですが、"/xxx/img/abc.gif"のような、"/"から始まる絶対パスでもダメでしょうか?

おそらく、ブラウザで表示させた後に表示できる現象は、キャッシュだと思います。

あと調査のやり方としては、PWSのアクセスログ等を見ると画像ファイルへのリクエストが来ている筈ですので、そのパスをチェックすると良いと思います。


このカテゴリの人気Q&Aランキング

おすすめ情報