過去の桐井戸端BBS (桐ver.8)
23546 横集計したものから一部分を取り出してカウントしたい はなこ 2003/11/27-12:48
はじめまして。
いつも参考にさせて頂いてます。
まだ初めてまもなくて、関数でつまづくことが多い初心者です;;

さっそく質問なんですが、
有給休暇の消化日数の処理を桐でやりたいと思ってます。

1〜12月までに何日有給を消化したかを一覧表にしたのですが、
有給を取った日を「有給取得日」の項目に入力すれば、
自動的に「月」(1〜12月まで別々にあります)の項目にカウントされるようにしたいのです。


  有給取得日1 有給取得日2 有給取得日3・・・1月の発生件数

    1/5     1/6     3/28       2


過去の桐井戸端BBSの「2821横集計で文字を数えたい」を参考にしてみたのですが、
1月5日(1/5と入力)と日にちまで入れてしまうとカウントしてくれません。


ぜひアドバイスをお願いします;;
23550 Re:横集計したものから一部分を取り出す 宮城 2003/11/27-14:02
記事番号23546へのコメント
はなこさん、こんにちは。

過去ログ 2821 方式でいこうとすると、ただ連結しただけでは、1月と11月が区別できなくなります。
手間ですが、先頭と項目間に","を追加してください。それで"晴"の代わりに",1/"とすれば
大丈夫なはずです。
1箇所で3文字減りますから3で割ってください。

>1月5日(1/5と入力)と日にちまで入れてしまうと
>カウントしてくれません。

この部分が不可解なのです。"1/"の数だけ数えるのに日が入ろうが問題ないはずなのですが。

ただし、一般的には各月1カ月分の項目を作り出勤・休み等を記号で入力しそれを数えるようにすると思います。

23551 Re:横集計したものから一部分を取り出す アックン 2003/11/27-14:26
記事番号23546へのコメント
はなこさん、こんにちは。
項目名を仮に、有給取得日1〜有給取得日3 としたら、こんなふうにします。

・1月の場合
( #L( ","+[有給取得日1]+","+[有給取得日2]+","+[有給取得日3] ) - #L(#s(","+[有給取得日1]+","+[有給取得日2]+","+[有給取得日3] , ",1/" , "") ) )/3

これを短くすると、こうなります。
・1月の場合
( #L( #set( STR , ","+[有給取得日1]+","+[有給取得日2]+","+[有給取得日3] ) ) - #L( #s( &STR , ",1/" , "" ) ) )/3

1月なら ",1/" 、2月なら ",2/" 、・・・、9月なら ",9/" とします。
式の最後は、/3 とします。

・10月の場合
( #L( #set( STR , ","+[有給取得日1]+","+[有給取得日2]+","+[有給取得日3] ) ) - #L( #s( &STR , ",10/" , "" ) ) )/4

10月なら ",10/" 、11月なら ",11/" 、12月なら ",12/" とします。
式の最後は、/4 とします。

なお、#L は #文字数 、#s は #文字置換 のことです。
23552 Re:横集計したものから一部分を取り出す うにん 2003/11/27-14:44
記事番号23546へのコメント

>有給休暇の消化日数の処理を桐でやりたいと思ってます。

横に[有休取得日n]を40個と、[n月の発生件数]を12個並べたような表を作ったのだと思いますが、
そのやりかたはよくありません。

[氏名][取得日]
の表に入れれば転置集計で
   1月 2月 〜〜〜 12月 合計
誰彼のように一発でできますので。

入力がめんどくさければ[氏名]でグループ化したフォームを使います。

23559 Re:横集計したものから一部分を取り出す はなこ 2003/11/28-09:58
記事番号23546へのコメント
アドバイスありがとうございました。
教えて頂いた式を使って完成させることができました。

基本的に有給消化表の作り方がうまくなかったみたいなので、
転置集計を利用したりする方法も知ることができて
とても勉強になりました。

今まで桐を使って入力することはあっても、関数を使って
自分で表を作ったりすることがなかったので分からないことが多く、
またお世話になると思います。

ありがとうございました。
23560 半日休暇を0.5として計算することできますか? はなこ 2003/11/28-10:37
記事番号23546へのコメント
出来上がったものを上司に見てもらったら、
「半日休暇もあるから、それを0.5として表示したいなぁ」
と言われました・・・(しくしく;;

アックンさんの式を使わせて頂いたのですが、
この式にプラスαしたりして、0.5を表示することができるのでしょうか?

23562 Re:半日休暇を0.5として計算することできますか? masa 2003/11/28-11:51
記事番号23560へのコメント
はなこさん こんにちは

No.23560「半日休暇を0.5として計算することできますか?」で書きました。
>出来上がったものを上司に見てもらったら、
>「半日休暇もあるから、それを0.5として表示したいなぁ」
>と言われました・・・(しくしく;;
>

1とか0.5とか入れる項目をもう1つ追加して転置集計を利用するのがいいのではないでしょうか?

23564 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/28-16:18
記事番号23560へのコメント
はなこさん、こんにちは。
半日と全日を識別するわけですね。現在の横に月を並べる表に直接入力するとなると、難しいでしょうね。(^^;
せっかく長い式をたくさん書いてもらったばかりで申し訳ないのですが、いっそのこと、入力方法を変更しましょう。
うにんさん、masaさんが書いた方法です。
ただし、日付を転置集計する前に、複数行に同じ姓名があるので、いったん行集計してから、転置集計します。
転置集計した表をいったん書き出します。
その書き出した表を、あらかじめ用意しておいた年間集計表(縦に姓名、横に1月〜12月の列、最後の列は合計)に読み込みます。

この一連の作業を、入力を簡単に、そしてミスを軽減させるために、フォームを使って、自動化します。
ってことで、見本を補完BBSにアップしておきました。

フォームを起動して、入力できます。コマンドボタン「集計」をクリックすると、
年間集計表をフォーム表示して、一番下の行に総計を表示します。

23566 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/28-16:57
記事番号23564へのコメント
追記です。ちょっと席はずしてました。
1.新しい入力表の日付は日時型なんですが、前の表の文字列の月日をそのまま読み込めます。
読み込んでみてください。

2.フォームに日付を入力するとき、11/28 とか 11-28 とタイプすれば、2003/11/28
(金) と表示します。曜はフォームが自動的に表示していますから、書き加えなくていいです。
と、こんな感じでいいでしょうか?
23567 Re:半日休暇を0.5として計算することできますか? うにん 2003/11/28-17:20
記事番号23564へのコメント

>ただし、日付を転置集計する前に、複数行に同じ姓名があるので、いったん行
>集計してから、転置集計します。

「見出し項目で並べ替える」にすれば行集計は不要。
転置項目は[日付]を月でグループ化すれば[月]は無くてもできます。


23568 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/28-17:54
記事番号23567へのコメント
うにんさん>
>「見出し項目で並べ替える」にすれば行集計は不要。
そうでしたね。どうも変だなと思った。(^^;

>転置項目は[日付]を月でグループ化すれば[月]は無くてもできます。
わざとこうしてます。最終的に読み込む集計表の項目名に年を入れたくないのと、
転置集計を書き出した表を読み込む際に、該当月がないとき、読み込みコマンドの *で読み込むようにするためです。
急いで書いたせいで、「ただし、」が余計で、気分悪くされたとしたら申し訳ない。m(__)m

23569 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/28-18:15
記事番号23568へのコメント
はなこさん> 補完BBSに、57.LZH を再アップしました。
他に表を開いてない状態で、フォームを起動してください。
23577 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/29-08:38
記事番号23569へのコメント
はなこさん> またまた補完BBSに、57.LZH をアップしました。
これで3回。(^^;
うにんさんの指摘でようやく気づいたのですが、年度で集計するように変えました。
ぼくは個人事業なんで、年度は1月〜12月までです。
それで、集計表の項目に”年”を入れないのがふつうです。
毎年、表を作り直すのが手間だからです。
ぼくは有給休暇の制度を知らないんですが、年をまたがっての年度で集計するんでしょうか。
(決算年度と有給休暇の消化って、関係あるのかなとも思うんですが。
有給休暇の集計って、年でするのか年度でするのか、誰か知ってる人、教えてください。)
もし年度だとすると、集計表の項目名が○月だったら、並び順がおかしくなりますから、
○年○月という個目名で並ぶように変えました。
そこんところは、はなこさんの勤め先の実際の入力データと、集計表の項目名をうまく合致させてくださいね。

23578 Re:半日休暇を0.5として計算することできますか? sinji 2003/11/29-11:51
記事番号23577へのコメント
アックンさん

>有給休暇の集計って、年でするのか年度でするのか、誰か知っ
>てる人、教えてください。)

いつも拝見させて頂いております。

桐Qには、とてもアドバイスできる力はありませんが有給休暇の件でご参考になれば。

原則
 就業規則等で特別の定めをしなければ個人ごと、雇い入れ日を基準に
0.5年、1.5年、2.5年、3.5年、4.5年、5.5年・・・・
というように入社直後の半年を除き1年単位で管理します。

一元管理
 就業規則等で定めをした場合は、年、年度にかかわらず事業所が定めた時期に設定できます。

例 1/1〜12/31、 4/1〜翌年3/31など
23582 Re:半日休暇を0.5として計算することできますか? アックン 2003/11/29-18:09
記事番号23578へのコメント
sinjiさん、こんばんは。
説明お聞きして、およそのことがわかりました。どうもありがとうございました。
集計表の項目をきちんと年月分用意しておかないと、合計が違ってくるかも。(^^;

23595 Re:横集計したものから一部分を取り出す はなこ 2003/12/01-10:56
記事番号23546へのコメント
おはようございます。
詳しい説明をありがとうございます。

実は風邪をこじらせて寝込んでしまっているので、
治ったらすぐに試したいと思います。
23692 Re:半日休暇を0.5として計算することできますか? はなこ 2003/12/04-12:21
記事番号23582へのコメント
こんにちわ。
風邪で寝込んでいてやっと今日作業に取り掛かれるようになりました。

さっそくサンプルをDLしてみたところ・・・
「Ver.が違います」
のメッセージが・・・;;

私はVer.8 Sp6を使っているのですが、Ver.が違うと
サンプルを開くことができないんでしょうか?
23693 Re:半日休暇を0.5として計算することできますか? 幅田 2003/12/04-12:31
記事番号23692へのコメント
はなこさん
こんにちは。
管理人の幅田と申します。
いつもご利用いただき誠にありがとうございます。


>さっそくサンプルをDLしてみたところ・・・
>「Ver.が違います」
>のメッセージが・・・;;

>私はVer.8 Sp6を使っているのですが、Ver.が違うと
>サンプルを開くことができないんでしょうか?

おそらく、そのサンプルはver.9で作られたものと思います。

桐ver.8ではver.9のファイルは読み込みできません。
(その逆は可能ですが)

また、桐v8と桐v9は、機能アップだけでなく
微妙に使い方や仕様が違います。

この掲示板で質問されるときは、
できるだけ、ご使用のバージョンをお書き下さい。
その方が正確な回答を得られるための近道です。
なお、↓も一度ご覧ください。
http://www.fuku3.com/~habata/kbbshlp.htm

今後ともよろしくお願い致します。

23706 Re:半日休暇を0.5として計算することできますか? アックン 2003/12/04-17:13
記事番号23692へのコメント
はなこさん> こちらをダウンロードしてください。Ver.8Sp6で作成したものです。
先のVer.9用のものは削除しました。
内容を一部変更しています。
年間集計の表の項目名を変更する際には、最後の項目[総計(合計)]の項目計算式の中の項目名も
変更することを忘れないでください。
とりあえず、これを動かしてみて、またご質問ください。
ご報告お待ちしておりますが、くれぐれも回復されてから、ゆっくりで結構です。(=^・^=)

幅田さん> バージョンをお聞きしないままにアップしてしまって、ご迷惑おかけしました。
ご説明ありがとうございました。V8を先日うっかりして削除してしまったので、先ほど再インストールしました。

23947 Re:横集計したものから一部分を取り出す はなこ 2003/12/18-11:52
記事番号23595へのコメント
とても遅くなりました。
やっとできあがりましたー。(遅すぎですけど^^;)
いろいろご指導ありがとうございました。

戻る