• 締切済み

CGIで合計を書き出す方法

初めまして 初心者ですがよろしくお願いします perl CGIでデーターが 名前<>商品<>金額<> 例) 田中<>商品名<>1200<> 佐藤<>商品名<>2500<> 山田<>商品名<>2000<> 田中<>商品名<>1800<> とあるときにその方の合計金額を表示させたい場合はどうしたらよいでしょうか? 表示結果 田中さん 3000円 佐藤さん 2500円 山田さん 2000円 どなたかご指導お願いします

みんなの回答

回答No.2

> print "$nameさんの金額は合計$kyaku{$name}[4]", > join( ',', keys %{$kyaku{$name}[1]}),"円です<br>\n"; この結果が > cocoa23さんの金額は合計5200,1800円です だと思いますが、1つ確認を。 join()とは、何をどうするための物ですか? そして、何をどうしたいのですか? # 何をどうしたいかはわかりますが、質問者さんに再確認してもらうためです。

ys0620
質問者

補足

&fl('lwa_que.lock'); open(F,"$ptfile") || &print_error("ファイルオープンエラー。"); @raiten = <F>; close(F); unlink("$lockdir/lwa_que.lock"); my %kyaku; for( @raiten ){ my @dat = split /<>/; $kyaku{$dat[1]} += $dat[3]; } # 集計結果を出力 print "$_さんの振込み金額は合計で$kyaku{$_}円<br><hr>\n" for( sort keys %kyaku ); これでできました ありがとうございます あと$_さんと 名前をクリックすると その方の詳細が出るように <A href="xxxx">$_さん</A>とは できないのでしょうか?  

全文を見る
すると、全ての回答が全文表示されます。
  • snowize
  • ベストアンサー率27% (68/245)
回答No.1

まずハッシュを作成しておく。 データを一行読み込んで、名前をハッシュのキーとして金額を可算する。 foreach文あたりで出力。 CGIに慣れてないのなら、コンソールプログラムでテストしてからCGIにしてみるといいでしょう。

ys0620
質問者

補足

&fl('lwa_que.lock'); open(F,"$ptfile") || &print_error("ファイルオープンエラー。"); @raiten = <F>; close(F); unlink("$lockdir/lwa_que.lock"); my %kyaku; foreach (@raiten){ my ($no, $name, $money, $kind) = split /<>/; unless($kyaku{$name}){ $kyaku{$name} =[0, {}]; } $kyaku{$name}[0] += $money; $kyaku{$name}[1]{$kind}++; } # 集計結果を出力する。 foreach my $name (keys %kyaku){ print "$nameさんの金額は合計$kyaku{$name}[4]", join( ',', keys %{$kyaku{$name}[1]}),"円です<br>\n"; } こんな感じでやってみましたが 金額が合計されません arisaさんの金額は合計1500円です hitozumaさんの金額は合計2200,2000円です cocoa23さんの金額は合計5200,1800円です

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ピボットでの合計とデータのカウント方法

    下記のようなデータで 行:日付(月でグループ化)、商品。列:国。データ:[合計/金額]  でピボットを作りました。 データに[データの個数/名前]をプラスすると、商品の行が2行になってしまいますが、 ここには金額だけが表示したいです。 で、月の[合計/金額]の次の行に人数のカウントを表示させたいのですが、 今のやり方だと同じ名前が別カウントになってしまいます。 どうにかうまくやる方法があったら是非教えていただければと思います。  日付 名前 国 商品 金額 1月1日 佐藤 日本 タイヤ 100 2月3日 田中 日本 パソコン100 1月13日 田中 中国 タイヤ 100 4月22日 佐藤 中国 パソコン100 2月16日 佐藤 インド タイヤ 100 1月3日 田中 中国 パソコン100 4月5日 佐藤 中国 パソコン100

  • 条件に合うものの合計

    エクセルでA列に「名前=山下、佐藤、田中、佐藤、田中、近藤、山下…等」で。B列に「100,90,70,120、30、50、5」などがあり、田中の合計は70+30=100、山下の合計は100+5=105というように、集計したいのですが…よろしくお願いします>

  • シートの合計

    よろしくお願いします。 エクセルでシート1~3迄あります。各シ-トのA列は名前、B列に数字が入っています。名前はA列のどの行にあるかわかりません。 同じ名前をシート4のA1に入力したらその名前の合計を出したい。  シート1    シート2   シート3       シート4   A   B    A   B   A    B     A    B 山田 10   木村  5  佐々木 18   木村  55  鈴木 20   田中 21  伊藤  33    ↑ 木村 50   山下 70  加藤  57  (入力する) 田中 15   高橋 90  佐藤  61 高橋 60   山田 10  鈴木  12             ・   ・   ・          

  • 複数のシートのセル内容をひとつにまとめたい

    複数のシートのセル内容をひとつにまとめたいと思っています。 Sheet1        Sheet2      Sheet3 1 山田 ¥100  1 山田 ¥80  3 鈴木 ¥80 2 佐藤 ¥130  2 佐藤 ¥55  4 田中 ¥150 3 鈴木 ¥110  4 田中 ¥60 こんなデータを Sheet4 1 山田 2 佐藤 3 鈴木 4 田中 とまとめたいんです。 金額は必要ないので、番号と名前だけをまとめたいんです。 どうすれば良いか、教えてください。 よろしくお願いします。

  • エクセル関数について

    エクセル2003です。 宜しくお願いします。 A列に担当者名、B列に金額が入力されており、 山田  10000 田中  8000 山田  26000 田中  20000 山田  20000 山田  -26000 山田 -10000 例えば、担当山田で、なおかつ20000以上の金額の合計、または販売本数を出す場合、以前質問させて頂いたのですが、SUMPRODUCT関数でできたのですが、上記のようにキャンセル(-)が入ってくる場合にどのような式にしたらいいでしょうか この場合ですと、山田の20000円以上の合計金額が20000円、販売本数が1と表示させたいです。 何卒お願いします

  • excel 重複したデータのコピー

    例えばこんなデータがあるとします。 名前  値 鈴木  1 佐藤  2 佐藤  5 小林  2 田中  3 田中  1 田中  2 斉藤  0 山田  4 山田  2 というデータから 佐藤  2 佐藤  5 田中  3 田中  1 田中  2 山田  4 山田  2 という感じで名前が2つ以上あるデータだけ抽出・コピーをしたいのですが、 どういう風にすれば出来るでしょうか。

  • Access 番号をつける方法

    お世話になっております。 access2010でクエリに番号を割り振ろうと思っています。 「ID」は昇順に並んでおり、同一の「ID」に対しての連番をつけたいです。 クエリ フィールド名:ID、名前 001 田中 001 佐藤 002 山田 003 鈴木 ☆完成図 フィールド名:番号、ID、名前 1 001 田中 2 001 佐藤 1 002 山田 1 003 鈴木 Accessでもexcelのcount関数を使うことはできるのでしょうか? それとも、DCountを使うのでしょうか? 2つ関数の使い方や、用途の違いがよくわかりません。 ご存知の方教えて下さい。よろしくお願いします。

  • エクセルの関数について

    宜しくお願いします。 A列に担当者名、B列に金額が入力されており、 山田  10000 田中  8000 山田  26000 田中  20000 山田  20000 例えば、担当山田で、なおかつ20000以上の金額の合計を出す場合、どうしたらよろしいですか? (この場合、46000を表示したいです) また、同じく20000以上の山田の件数を出す場合も合わせてご教授ください。 (この場合は2を表示したいです。) 宜しくお願いします。

  • エクセル97です。かなり難しい足し算教えてください

    エクセル97を使っています。これは無理かと思いますが質問させてください 50名ほどの名簿があるとします。田中、佐藤、渡辺という感じです C2から下に名前、D2から下に金額のデータがあると仮定します 実際には300ほどのデータで、毎日のように増えます 同じ名前が何度も出てきます    C   D 2 田中 3000 3 佐藤 2000 4 渡辺 1500 5 鈴木 2000 6 田中 5000 一方で次のような名前ごとの合計を求める表があります 田中 3000 佐藤 2000 渡辺 1500 鈴木 2000 ここからが難しいのです。難しいですがGooの皆さんの中には優秀な人が たくさんいるのでもしかしてできるかも知れないと思い質問させて頂きました 6行目に田中さん5000という新しいデータが入ったら 田中さんの合計が8000になって欲しいのです 自分が今やっている方法は名前でソートしてその合計を求めています 名前をソートしないで自動的にというのでしょうか田中さんの合計が8000になるような方法があれば教えて欲しいと思います ちょっと長くなりましたがよろしくお願いします  

  • 合計の出し方

    下記の様な表があるとします。Aには商品名、Bには販売金額(実際は100行位です) C列にはA列から選んだ特定の商品名があります。(実際は50行位です) B列の下方にC列の商品だけの合計を表示させたいのですがどのようにしたら良いでしょうか? ちなみに私の出来る方法では、D列にVLOOKを使い販売金額を検索し、それを合計する方法しか思いつかなかったので、別な方法があれば教えて頂きたいです。  A   B    C りんご  100円  みかん みかん 200円  イチゴ ぶどう  500円  バナナ イチゴ  300円  桃 バナナ  150円  桃    500円 合計  1,150円

このQ&Aのポイント
  • 子機BCL D100を使用している際に、反応が鈍くなってきました。
  • BCL D110や120の子機は使用可能でしょうか?
  • お使いの環境について、パソコンやスマートフォンのOS、接続方法、関連するソフト・アプリ、電話回線の種類などを教えてください。
回答を見る