- ベストアンサー
「期間」を1日ごとの日程表に置き換えたい
例えば、横浜が1~4日、7~8日 広島が3~5日、7~8日 巨人が2~3日、6~8日 というように「期間」を入力して、これを -横広巨 日浜島人 1○-- 2○-○ 3○○○ 4○○- 5-○- 6--○ 7○○○ 8○○○ (「-」は空白で便宜上入力しただけです) というような日程表に置き換えたいのです。 lookupでできるのかなとは思ったのですが、期間のところでつまずいています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
では、病人から一案を… I列 J列 横浜 0 1 4 7 8 期間の表を上記のようにすれば、 =IF(LOOKUP($A2,I$2:I$10,J$2:J$10)>=$A2,"○","") セル参照は適当です。 1日~じゃない場合にエラーが出るので、0日~というデータを付け加えなければならないのが難点かな。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
これはVBA向きの問題のような気がする。エクセル関数病(^○^)の方が多いので、やってみました。 B2からL2まで 巨人 1日 ~ 4日 7 8 12 14 18 21 24 27 30 30 とします。C2、D2は書式で上記のように見せて、セルの値は数値にすること。 C2は書式は##"日"、D2は書式は="~"##"日"、以下手抜きで略。 A4:A34まで1-31の数値をオートフィルする。 「xx日からyy日まで」は最多6ペアーしかないものと仮定する。 かな・までの塊で1日しかないときはペーアーで同じ日を入れること。 ’---- B4(1日に当たる)に式 =IF(((ROW()-3)>=$C$2)*((ROW()-3)<=$D$2)+((ROW()-3)>=$E$2)*((ROW()-3)<=$F$2)+((ROW()-3)>=$G$2)*((ROW()-3)<=$H$2)+((ROW()-3)>=$I$2)*((ROW()-3)<=$J$2)+((ROW()-3)>=$K$2)*((ROW()-3)<=$L$2)+((ROW()-3)>=$M$2)*((ROW()-3)<=$N$2),"○","") と入れる。長いが繰り返しが多いので意味はわかるでしょう。 何日より大きく「かつ」何日より少ないを6ペアー並べ、どれかの塊に該当すればよいので、+で結んでいる。 結果は 1 ○ 2 ○ 3 ○ 4 ○ 5 6 7 ○ 8 ○ 9 10 11 12 ○ 13 ○ 14 ○ 15 16 17 18 ○ 19 ○ 20 ○ 21 ○ 22 23 24 ○ 25 ○ 26 ○ 27 ○ 28 29 30 ○ 31 となる。 広島も同じように考えて式の修正すべき箇所は修正してください。 別シートに造るなら、Sheet1を参照する部分は、Sheet1!をセル番地の先頭につけてください。 関数式での回答は、あきらめてもらうために出します(^○^)。 もっと良い回答が出る(?)ことを待ちましょう。
お礼
有難うございます。 ちゃんと同じ結果を再現できました。 私も「関数病」かもしれません。
お礼
おおっ、この方がすっきりしていますね。 汎用性も高そうで、月またぎでも対応できそうです。 ありがとうございます。