• 締切済み

勤務シフトの時間別人数を関数を使っての出し方を教えて下さい

お世話になります。 エクセルで─線以下のように、時間別の人数を関数を使って、簡単に表示したいのですが・・・宜しくお願い致します。 名前    1/30          1/31         Aさん| 1000-1800         休           Bさん|   有         900-1830   Cさん| 900-1800       1000-1830    Dさん| 1200-2000      1030-1900 Eさん| 1130-1930      1200-2000 ─────────────────────── 900-1000    1          1 1000-1030   2          2 1030-1100   2          3 1100-1130   2          3      1200-1300   4          4 1900-2000   2          1 ─線より上の時間は、ひとつのセルに1000-1800と入力してるのではなく、実際は、ひとつのセルで改行して2行で入力しています。 |1000| |1800| のような感じです。 (休)などは、COUNTIFを使用して表示は出来たのですが、時間を入力すると出来ませんでした。 宜しくお願い致します。       

みんなの回答

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.3

無理です。 こんなに使えない式に。 ______A____B____C_ _1____名前____1/30__1/31_ _2___Aさん_1000-1800____休_ _3___Bさん____有__900-1830_ _4___Cさん__900-1800_1000-1830_ _5___Dさん_1200-2000_1030-1900_ _6___Eさん_1130-1930_1200-2000_ 11__900-1000_____1_____1_ 12_1000-1030_____2_____2_ 13_1030-1100_____2_____3_ 14_1100-1130_____2_____3_ 15_1200-1300_____4_____4_ 16_1900-2000_____2_____1_ B11 =SUMPRODUCT((((LEFT(SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0),FIND(CHAR(10),SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0))-1)-LEFT($A11,FIND(CHAR(10),$A11)-1)>=0)*(LEFT(SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0),FIND(CHAR(10),SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0))-1)-MID($A11,FIND(CHAR(10),$A11)+1,4)<0)+(LEFT($A11,FIND(CHAR(10),$A11)-1)-LEFT(SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0),FIND(CHAR(10),SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0))-1)>=0)*(LEFT($A11,FIND(CHAR(10),$A11)-1)-MID(SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0),FIND(CHAR(10),SUBSTITUTE(SUBSTITUTE(B$2:B$6,"有",0&CHAR(10)&0),"休",0&CHAR(10)&0))+1,4)<0))>0)*1) 下方向・↓右方向・→

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

> ─線より上の時間は、ひとつのセルに1000-1800と入力してるのではなく、実際は、ひとつのセルで改行して2行で入力しています。 > |1000| > |1800| のような感じです。 これだと、文字列扱いになってしまい、そのまま計算には使えません。 改行文字で区切って、文字列を数値に直して、とかってやればいいのかもしれませんが、私にはちょっとよく解りません。 フォーマットを変えることはできないのですが? もし添付図のようなフォーマットに変更できるのであれば、添付図の場合、C5に、 =SUMPRODUCT((C$2:C$4<=$A5)*(D$2:D$4>=$B5)) と入力して、C5を他のセルにコピーすればよいです。 フォーマットを変えられないのであれば、私には解りません。

  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

(休)同様に、=COUNTIF(範囲,"1000"&char(10)&"1800")でいけると思います。

関連するQ&A