excel
[HOME] [MAIL]

CEL396.連動して・・・

Q:(質問者:宮崎県yonさん)
楽しく拝読させていただいておりますyonと申します。
前回は快く返答いただき感謝しております。
当方は設備会社に勤務しておりまして、各社員がどの現場に何時間いるのか、また、各現場に誰が何時間いるのかを、なにかしらの方法で出さなければならないのですが、現在うまいやりかたが判らず、それぞれの視点ごとに記入するという手間とミスが多い方法を用いております。
そこでこの両方が連動する方法をご教授願いたいのですが。

      △山□男氏
      ┌──┬────┬────┬────┬────┐
      │現場│○△ビル│□○邸 │××住宅│××住宅│
      │作業│空調設備│換気設備│配管設備│配管修理│
      ├──┼────┼────┼────┼────┤
      │1日│5:30│    │4:30│    │
      ├──┼────┼────┼────┼────┤
      │2日│2:30│6:00│    │1:30│
      ├──┼────┼────┼────┼────┤
      │ ・│    │    │    │    │
      ├──┼────┼────┼────┼────┤
      │ 計│    │    │    │    │
      └──┴────┴────┴────┴────┘
       A   B    C    D    E   
	
       ○△ビル空調設備
      ┌──┬────┬────┬────┬────┐
      │氏名│△山□男│●川×子│□田○也│×原△雄│
      ├──┼────┼────┼────┼────┤
      │1日│5:30│3:00│1:30│    │
      ├──┼────┼────┼────┼────┤
      │2日│2:30│2:00│    │8:30│
      ├──┼────┼────┼────┼────┤
      │ ・│    │    │    │    │
      ├──┼────┼────┼────┼────┤
      │ 計│    │    │    │    │
      └──┴────┴────┴────┴────┘
       A   B    C    D    E 
ちなみに社員視点の現場、作業内容は契約や以来により不定期に増えますので固定ではありません。
現場視点は社員は固定です。
社員視点のシートで現場と作業内容の二つの条件を満たす数値を検索して、現場視点のシートで拾ってくれるくれる・・・・そんな方法が望ましいのですが、可能でしょうか?

???????????????????????


A:
関数は、INDEXを使用します。
範囲の行と列の交差したところの、値を返します。
まず、不規則なものを、規則を必要とするコンピュータで処理させるのは、困難です。
しかし、ある程度、ものは、可能です。それと、かなりの作業を要します。
確認します。
個人別の作業予定から、その時々の現場の人員配置と考えてよろしいでしょうか。
勘違いしていたら、ゴメンナサイ。
個人の予定を入力して、現場に反映させる。ですね。
社員視点の表の一部変更。
1行目に数値を入れるセルを用意して、入れる数値は、下記の通り。
後は、今までどおり、
   A     B  C  D  E
1 △山□男 氏  1  2  3  4
3  作業現場 ○△ビル 
4   1日   5:30 
後々考えて、個人別にシートを作成してください。
1人を作って、後でコピーし、データのみ入力しても、Shiftを押しながらシートタブをクリックして、グループを作って、同じ箇所だけ入力してもらっても、どちらでも、【セルB4】から【Fおわり+1】までを選択して名前ボックス(数式バーの左側のボックス)をクリックし、分かりやすい名前を付けます。
今回は、「△山」にします。
名前は、お一人お一人に、分かりやすい名前にします。
範囲が広いのは、余分を持たせるためです。後の追加に便利です。
今の現場が終わっても、このシートに、当面追加できます。
現場用のシートを1枚用意します。
【セルA1】に「1」を入力します。
1列目に数値を入れる列を追加してください。
【セルA3】からの数値は、1から始まり1ずつ増えます。
  A   B   C     D   E
1  1 
2    氏名 △山■男 ●川×子
3  1  1日
4  2  2日
例 【セルC3】に式を入力します。
=IF(INDEX(△山,$A3,$A$1)="","",INDEX(△山,$A3,$A$1))
セル範囲形式の INDEX 関数は指定されたセルの参照を返します。
△山■男さんのシートのセル範囲(名前を付けた部分)の1行目1列目の値を参照します。
このシート上の【セルA1】の値「1」は、列のためです。
『○△ビル空調設備』のデータを集めるためです。
この列を変えたくないため、絶対参照にしてあります。
「1」と言う数値を入力してもいいのですが、間違いを防ぐ、入力を少なくするためです。
INDEXの第3引数に利用しています。
【セルA3】の値「1」は、行のためです。同じく間違いを防ぐ、入力を少なくするためです。
第2引数に利用しています。
下方にコピーします。列は、出来上がりです。
右にコピーします。第1引数は、●川×子さんの「シート」の「名前」に変更します。
変更したら、下方にコピーします。
□田○也さんと×原△雄さんは、●川×子さん同様にします。
これで現場シート1枚目が完成しました。
このシートをコピーして、次の現場の □○邸換気設備を作ります。
【セルA1】この値を参照して、□○邸換気設備のデータを集めますので、新しいシートは変更が必要です。
「2」に変更してくださいね。
3枚目も4枚目も同様の作業が必要です。
現場が増えるたび、シートも増えます。
社員さんが多くてもシートが増えます。
色々工夫されてシートを少なくするとか、ブックを分割するとか使い勝手の良いものにしていってくださいね。 [質問一覧][HOME]

CEL397.時間の計算

Q:(質問者:natsu-mikanさん)
時間の計算はよく質問に上がっていますが 単純に 70分 → 1時間10分( 70 → 1.10 でも結構です )
頭の中では 70/60 あまり10 1時間10分となるのですが、いざ エクセルで変換しようと思うと、あまりの部分がすべて割り切れて時間ではなく数値となってしまいます。
要は 分 を 時間と分 に変換して、表示させたいだけなのですが・・・。

???????????????????????


A:
兵庫yuhkiです。
以下の方法はいかがでしょうか?
A1セルに70と入力されているとします。
1.関数で(その1)
B2セルに以下の式を入力します。
=INT(A1/60)&"時間"&MOD(A1,60)&"分"
60で割った商を時間、余りを分としてます。
2.関数で(その2)
B2セルに以下の式を入力します。
=TEXT(A1/24/60,"h時間m分")
A1の数値を分に換算し、TEXT関数でh時間m分表示にしています。
3.表示形式で
B2セルに以下の式を入力します。
=A1/24/60
で、セルの書式設定のユーザー設定で「h"時間"m"分"」と設定。
上手く良くといいですね。
ではでは。 [質問一覧][HOME]

CEL398.所属・性別毎の平均年齢と勤続年数

Q:(質問者:福岡県kenさん)
Windows2000 Excel2000
A列:所属、B列:性別、C列:生年月日、D列:入社年月日
のデータから、所属別年齢別で平均年齢と平均勤続年数の表を作りたいです。
データは勿論、所属CD、性別CD順に並んでいます。
日付は西暦で8桁です。平均年齢と勤続年数は何年何ヶ月まで必要です。
明細のデータや生年月日や入社年月日は後で消します。
宜しくお願いします。

所属  性別 平均年齢  平均勤続
 A   男性   45.06   13.02
     女性   25.06   03.10
     平均   35.06   08.06
 B   男性   33.01   06.11
     女性    :     :
            :     :
総合計 男性   xx.xx   xx.xx
     女性   xx.xx   xx.xx
     平均   xx.xx   xx.xx

最終形はこんな感じです。

???????????????????????

A:
福岡県kenさん今日は。兵庫のhhirochannです。
お望みの形にするには、マクロを組む必要があると思います。
でもその1歩手前の形なら集計を利用することにより可能です。
所属  性別 生年月日 入社年月日 年齢(月数) 勤続月数 E,F列を追加します。
2行目からデータが入力されているとします。
E2セルに =DATEDIF(C2,TODAY(),"M")
F2セルに =DATEDIF(D2,TODAY(),"M")
を入力し、この式をデータの最後の行までフィルハンドルでコピーします。
これで 年齢(月数) 勤続月数が求まりました。

・次に データ → 集計 と進み、
集計の基準に 性別を
集計の方法に 平均を
集計のフィールドで 年齢 と 勤続月数にチェックを入れ OKします。
これで、所属毎の 男性の平均年齢(月数) 平均勤続月数
            女性  〃         〃
   と、全体の       〃         〃   が求まります。
今度は、集計の基準を所属に変更しますと所属毎の平均年齢 平均勤続月数 が求まります。
後は、この月数を年と月に分解して表示します。
分解の仕方は E50のセルにこの数値がある場合
=ROUNDDOWN(E50/12,0)&"才"&(E50-ROUNDDOWN(E50/12,0)*12)&"月"
の如くすれば、可能です。
この方法では1度に求められませんので、やはりマクロで処理すべきと思います。
マクロでの回答は他の人に譲ります。 [質問一覧][HOME]

CEL399.退職の日を知るには?

Q:(質問者:広島県makiさん)
Windows2000 
生年月日から、定年退職の年月日を求める事ができる関数はありますか?
定年退職は60歳で、60の誕生日がきた次の10日付けになります。
宜しくお願い致します。

???????????????????????


A:
広島県makiさん今日は。兵庫のhhirochannです。
  A   B    C     D
1NO  氏名  生年月日   退職日
2 1  a   1943/12/15 2004/1/10
3 2  b   1945/6/8  2005/6/10
・・・
の如き構成になっていると仮定します。
生年月日は日付データと考えます。
D2セルに下記式を入力します。
=IF(DAY(C2)<10,EDATE(C2,720)+10-DAY(C2),EDATE(C2,721)+10-DAY(C2))
D3セル以降は上記式をコピー(フィルハンドルにて)します。
ここで
・EDATE関数は指示した月数分後の日付けを返します。
−の月数を入力しますと、その月数分以前の日付になります。
・60の誕生日がきた次の10日が退職日との事ですので、DAY関数にて、生年月日の日を求め、その日が10より小さい場合は720ケ月後の10日、10日以降の場合721月後の10日になるように10-DAY(C2) で調整しています。
注)10日が誕生日の場合、文面より翌月の10日が退職日としました。
  11日以降が翌月の場合は 上記式でDAY(C2)<10をDAY(C2)<11 に変更ください。 [質問一覧][HOME]

CEL400.リンクをはずしたい

Q:(質問者:愛知県ogawaさん)
Windows98
いつも勉強させて頂いております初心者です。
Excelを仕事に利用しておりますが、毎月の在庫表をグラフ付にて表示しておりますが、ある時から開こうとすると、リンクの表示がでます。
又他人から受け継いだ集計表も同じように開く時、リンクしていますと表示されます。
キャンセルを数度かけると開きますがウットオシイのでリンクをハズしたいのですが、方法をご教授願います。

???????????????????????


A:
兵庫yuhkiです。以下の方法はいかがでしょうか?

1)メニューの[編集]−[リンクの設定]を選択。
2)リンクされているファイル名を確認。
3)シート全体を選択して、メニューの[編集]−[検索]でファイル名を検索。
4)見つかれば、その数式を変更してください。

グラフがリンク貼り付けの場合は、削除して図として貼り付けてください。
上記の方法で見つからない場合、名前定義の場合もありますので、メニューの[挿入]−[名前]−[定義]で見つかった名前の範囲の部分をご確認ください。

他のファイルの名前が入っている場合は、その箇所の確認が必要だと思います。
ではでは。 [質問一覧][HOME]

[HOME] [MAIL]