[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ガントチャート(日付の色付け)』(syou)
初心者です。
ガントチャートを作成したいのですが、うまくいきません。
表1
A B C D E F G 1 2 3 注文番号 工程1 分類 工程2 分類 工程3 分類 4 A〇〇〇 2021/5/20 1 2021/5/24 1 2021/5/24 2 5 A××× 2021/5/20 1 2021/5/21 1 2021/5/21 1 6 A△△△ 2021/5/20 1 2021/5/26 1 2021/6/1 1 日付の元のデータでは時間まで表示されています
表2
H I J K L M N O P Q R S T 1 5 5 5 5 5 5 5 5 5 5 5 5 6 (月) 2 20 21 22 23 24 25 26 27 28 29 30 31 1 (日) 3 木 金 土 日 月 火 水 木 金 土 日 月 火 (曜日) 4 5 6
・表1と表2は同じシート内にあり実際は繋がっています
・表1の年月日は別の表から関数(INDEXとSUMPRODUCT)で持ってきた日付(ネット情報の見よう見まねですが)
・注文番号ごと、一行に色分けした各工程名(工程1、工程2、工程3)を、表1と表2で一致した日付の列に表示したい
・表2には条件付き書式の「指定の値を含む書式設定」で、
各工程名を色分けして、セルに各工程名があれば色がつく設定。
・表2の4行目からのセルには、=IF(B4=H2,"工程1","") こんな感じに入れています
色を付けて表示したい、ですがまず表1の日付の何かが違うのか一致しません。
表1に手入力で関数で出した同じ日付を入れると、表2の該当するセルに色がついた工程名が表示されます。
この色付け設定では無理でしょうか。
どこをどのように変えるといいのでしょうか。
一応全文検索をしましたが、見つけられなかったので質問させていただきます。
よろしくお願いします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
返信ありがとうございます。
日付の表示形式は「別の表から関数(INDEXとSUMPRODUCT)で持ってきた日付」は日付になっています。
(一応...元データの方はユーザー定義でyyyy/m/d h:mm が選択されています)
ISTEXT関数で調べると、FALSEでした。
日付の表示形式を数値に変えてみたところ、
5/20の場合、
「別の表から関数(INDEXとSUMPRODUCT)で持ってきた日付」が 44337、
表2の日付 が 44336 と表示されました。
これのせいでしょうか?
(syou) 2021/06/12(土) 09:01
お邪魔します。。。 後ろの h:mm を消してみてはどうでしょうか? yyyy/m/d h:mm
あっ表示だけ変えてもだめっぽいですね。。 もう整数になっているので問題ないとおもいますが、、 INTでくくってみてはどうでしょうか? (SoulMan) 2021/06/12(土) 09:49
すみません。全然、違いますね(^^; 5/20の場合、4436 が正解で 4437 は、小数点以下が丸まって繰り上がっているのでしょうね? なので 関数で持ってきた 4437 をINTでくくって 4436 になればいいのかもしれませんね。。。 (SoulMan) 2021/06/12(土) 10:27
ご返信ありがとうございます。
INTでくくったところ色付きで表示されました!
解決しました。
ありがとうございました!
(syou) 2021/06/12(土) 12:13
新たに質問した方がよいのかもしれませんが…
表1の工程名、表2と一致する日付が複数ある場合について質問です。
IF関数やCOUNTIF関数、MAX関数など使うと出来るかと思いましたが閃かず悩んでいます。
・表2の日付との一致数が1個 → 表2のその日付列に工程名を表示する。
2個以上 → 重複する日付の中でセルが一番右側にある工程名を表示する。
(工程が5つある中で、工程2 と 工程3 の日付が重複する場合、工程3を表示したいです)
お知恵をお貸しください。
よろしくお願いします。
(syou) 2021/06/12(土) 18:18
ちょっと確認
1)最初の質問で INT 関数を使ったのは、表1の INDEX の式? 2)表2の2行目はシリアル値?(なんで月と日を分けてるのか知りませんけど)
だとして・・・
H4 =IFERROR(LOOKUP(1,0/($B4:$F4=H$2),$B$3:$F$3),"") 右・下コピー
>工程が5つある中で 3つでは?
ところで >INDEXとSUMPRODUCT これは具体的にどんな式なんですか?
以上 (笑) 2021/06/12(土) 20:14
補足
上の LOOKUP の式は、表1の「分類」の列(C列とE列)に「5桁の数値」は入らないことを前提にしています。
以上 (笑) 2021/06/12(土) 21:34
返信ありがとうございます。
教えていただいた方法で表示されました!
ありがとうございました。
前提の件は承知しました。
今のところ入る場合でも1桁のみだと思います。
1)最初の質問で INT 関数を使ったのは、表1の INDEX の式? >INDEXとSUMPRODUCT これは具体的にどんな式なんですか?
INTはINDEXの式の頭につけました。
一部変更しましたが、このように式を入れています。
=INT(IF(OR($O7=0,$F7=""),"",INDEX(Sheet3!$H:$H,SUMPRODUCT((テーブル1[[#すべて],[注文番号]]?$F7)*(テーブル1[[#すべて],[分類]]?=$O7)*(テーブル1[[#すべて],[工程]]?=$N$6),ROW(Sheet3!$H:$H)))
質問で載せている表1、表2は実際は長い為、
言葉や質問には不要な部分をカット、変更し縮めたものです。
2)表2の2行目はシリアル値?(なんで月と日を分けてるのか知りませんけど)
ISNUMBER関数ではTRUEと出ます。
なぜ月と日を分けているのかは、元々表を作成したのは自分ではない為分かりません。
その方が作成者の使い勝手が良いのかもしれません。
>工程が5つある中で 3つでは?
例えの一つとして挙げましたが余計でした。申し訳ありません。
(syou) 2021/06/12(土) 23:07
■INDEXとSUMPRODUCTの式について 参考元を見ました。 ↓ の式ですね。 =INDEX($D$1:$D$7,SUMPRODUCT(($A$2:$A$7=F2)*($B$2:$B$7=G2)*($C$2:$C$7=H2),ROW($A$2:$A$7)))
これは条件に該当するものが元表に「1つ(1行)しかない」というのが大前提。 それに加えて、戻り値が数値(日付+時刻を含む)なら SUMIFS の方がいいと思います。
=SUMIFS($D$2:$D$7,$A$2:$A$7,F2,$B$2:$B$7,G2,$C$2:$C$7,H2) =SUMIFS(D:D,A:A,F2,B:B,G2,C:C,H2)
>=INT(IF(OR($O7=0,$F7=""),"",INDEX(Sheet3!$H:$H,……
INT は ↓ につけた方がいいでしょう =IF(OR($O7=0,$F7=""),"",INT(INDEX(Sheet3!$H:$H,……
SUMIFSでも同じ =IF(OR($O7=0,$F7=""),"",INT(SUMIFS(……
■シリアル値について >ISNUMBER関数ではTRUEと出ます。 これだけではシリアル値とは言い切れません。
表2の2行目 ・単に「20」と入力しているだけ ・「2021/5/20」と入力し、表示形式〜ユーザー定義を d にしている
どっちなのかを知りたかったんですが、ISNUMBER ではどちらも TRUE になります。 一度「Excel 日付 シリアル値」等でネット検索し、シリアル値について調べてみてください。
簡単に言うと「2021/5/20」と「44336」は同じもの。 分類の列に「5桁の数値」が入ることを想定していないのはそのためです(意味わかりますか?)
以上、参考まで (笑) 2021/06/13(日) 12:00
>それに加えて、戻り値が数値(日付+時刻を含む)なら SUMIFS の方がいいと思います。
2019なら MAXIFS の方がいいかも
参考元の例で言うと =MAXIFS($D$2:$D$10,$A$2:$A$10,F2,$B$2:$B$10,G2,$C$2:$C$10,H2) =MAXIFS(D:D,A:A,F2,B:B,G2,C:C,H2)
時刻を切り捨てる場合は INT を使ってください。
参考まで (笑) 2021/06/13(日) 14:27
返信ありがとうございます。
返事が遅くなり申し訳ありません。
■INDEXとSUMPRODUCTの式について
なるほど…
SUMIFSでも同じ答えが返ってきました。
INTの位置もSUMIFSの頭に変更し、色も問題なく表示されました。
数値の合計を求める関数でも、今回は条件に合致する値はひとつなので結局同じになりますね。
■シリアル値について
>ISNUMBER関数ではTRUEと出ます。 これだけではシリアル値とは言い切れません。 表2の2行目 ・単に「20」と入力しているだけ ・「2021/5/20」と入力し、表示形式〜ユーザー定義を d にしている
勉強不足で申し訳ありません。
日付も時刻も、もともとシリアル値で管理されているのですね。
表2の2行目は後者の、表示形式〜ユーザー定義を d にしている です。
1行目、3行目もユーザー定義で m と aaa です。
分類列には 1〜9 の数値が入り、常に標準表示です。操作ミス等の間違いがなければですが…
自分が普段使用するパソコンは2019なのですが、
2016の方で使用する可能性があるので、SUMIFSにします。
丁寧に解説していただき本当にありがとうございます。
(syou) 2021/06/13(日) 18:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.