[[20151123144432]] 『(関数)検索値に該当する行を基準にして列毎に未』(ぽぽろん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『(関数)検索値に該当する行を基準にして列毎に未入力個数を算出する方法』(ぽぽろん)

いつもお世話になっております。

現在、勤務表作成にあたり、スタッフの休暇未取得状況を把握するための方法を思案中です。

'============================================================

(シート構成)

・シート名:公休マスタ

 →A列(A3:A250):ナンバリング

 →B列(B3:B250):休暇日リスト(1年で消化予定の日付データ)

 →C列(C:X)  :スタッフの休暇取得状況(取得済みは:済 未取得は:空欄)

・その他

 →セルB1には、未消化の休暇数を取得するための基準日を記入
  (ここでは11月の最終休暇日(H27.11.29)

 →1行目のC列:X列は、各スタッフの未消化日数を関数で記載
  
  ※現在は「C1=COUNTBLANK(C3:C89)」と範囲指定は手作業で指定して確認中

'============================================================

(質問内容)

1行目のC列:X列は、各スタッフの未消化日数を関数で記載の部分は
「C1=COUNTBLANK(C3:C89)」と範囲指定は手作業で指定して確認しております。
 ↓
※この範囲指定部分を自動化できないでしょうか?

説明が伝わるか不安ですが、下記に処理の案を記載しておりますので、何卒アドバイスの程よろしくお願い致します。

'============================================================

・考えている処理方法としては

(例えば、C列のスタッフの未消化数をセルC1に書き出す場合)

(1)「B1の基準日」を処理の最終行と定め日付を入力(例:B1=H27.11.29)
(2)「B列の休暇日リスト(B89)」から最終行となる日付を取得(例:B89=H27.11.29)
(3)「B列の最終行(B89)」から上に空白セル個数をカウント(範囲=C3:C89)

 ※なお、休暇消化済みについては「済」と記載されています。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 エキスパート回答者からもっとすっきりした関数が提示されると思いますが…
 =COUNTBLANK(INDIRECT("C3:C"&MAX(INDEX((B3:B250=B1)*ROW(A3:A250),0))))
(se_9) 2015/11/23(月) 16:04

 >(2)「B列の休暇日リスト(B89)」から最終行となる日付を取得(例:B89=H27.11.29) 

 このプロセスを全ての数式に組み込むのは無駄感があります。

 基準日の行番号はどこかのセルに書き出して置く訳にはいかないですか? 例えば、A1セルに。

 多分、A1セルは、「ナンバリング」とかの文字が入っているでしょうから、
 数式を =MATCH(B1,B3:B250,0)+2 と入れたあと、セルの書式(表示形式)を
 ユーザー定義で "ナンバーリング" として、見た目だけ元に戻す。

 C1セル =COUNTBLANK(C3:INDEX(C:C,$A$1))
 右にコピー

  <結果図>
  行  _______A_______  ____B____  _C_  _D_  _E_
   1  ナンバーリング   11月29日   87   87   86
   2                                           
   3               1   1月1日               済 
   4               2   1月2日                  

(半平太) 2015/11/23(月) 16:06


se_9さん
半平太さん

早速のアドバイスありがとうございます。
動作はバッチリ動きました。

INDEX関数の工夫が凄くてとてもじゃないですけど思いつきませんでした。
ようやく、作業を前にすすめることができます。

解決です(\(^o^)/)
(ぽぽろん) 2015/11/23(月) 17:30


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.