- 締切済み
勤務シフトの時間別人数を関数を使っての出し方を教えて下さい
お世話になります。 エクセルで─線以下のように、時間別の人数を関数を使って、簡単に表示したいのですが・・・宜しくお願い致します。 名前 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を使用して表示は出来たのですが、時間を入力すると出来ませんでした。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- n_na_tto
- ベストアンサー率70% (75/107)
無理です。 こんなに使えない式に。 ______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)
> ─線より上の時間は、ひとつのセルに1000-1800と入力してるのではなく、実際は、ひとつのセルで改行して2行で入力しています。 > |1000| > |1800| のような感じです。 これだと、文字列扱いになってしまい、そのまま計算には使えません。 改行文字で区切って、文字列を数値に直して、とかってやればいいのかもしれませんが、私にはちょっとよく解りません。 フォーマットを変えることはできないのですが? もし添付図のようなフォーマットに変更できるのであれば、添付図の場合、C5に、 =SUMPRODUCT((C$2:C$4<=$A5)*(D$2:D$4>=$B5)) と入力して、C5を他のセルにコピーすればよいです。 フォーマットを変えられないのであれば、私には解りません。
- singlecat
- ベストアンサー率33% (139/418)
(休)同様に、=COUNTIF(範囲,"1000"&char(10)&"1800")でいけると思います。