[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『間隔時間の見直し』(クマ)
__A__ ______B______ ____C_____ ______D_____ ______E______ ________F_______ ___G___ 1 品名 仕様1 仕様2 仕様3 仕様4 温度差 時間 2 ブリ ○ ○ ○ 10 3 ブリ ○ ○ ○ 10 0 10 4 アジ ○ ○ ○ 10 0 20 5 サンマ ✖ ○ ○ 10 0 75 6 サワラ ○ ○ ✖ 10 0 75 7 チヌ ○ ✖ ○ 10 0 75 8 タイ ○ ○ ○ 200 190 140 9 タチウオ ○ ○ ○ 160 40 100 102Dタイ 〇 〇 〇 160〜500 20 11 アジ 〇 〇 〇 400 20 以前に教えていただきありがとうございました。 また分からない事がありまして質問させていただきます。上記の様な20行くらいのAからF列表があります。品名が2行目と3行目の様に同じであればG列に10分 3行目と4行目の様に品名は変わるが 仕様は同じの場合は20分5行目と6行目の様に仕様が一箇所異なれば75分8行目の様に仕様1から3までは同仕様で上の行の仕様4の温度差により 別表から間隔時間を検索しています。 10行目の様に品名の頭に2Dと付いていたら仕様4の温度が160から500℃で処理可能で、仕様1から3まで同仕様で品名の頭に2Dと付いる前列と後列は間隔時間が20分としたいのですが出来ません。 宜しくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
ちょっと、よく分からない部分があります。
>8行目の様に仕様1から3までは同仕様で 7行目は仕様2が×ですから、8行目は上と同じ仕様じゃないですよね?
それが同じ仕様と言うのなら、単独で自行に○が3つあれば同仕様と解釈するしかないですが、 この解釈で合っていますか? ※そもそも、仕様1〜3には、本当に○が入っているんですか?
(半平太) 2017/07/16(日) 10:38
> 10行目の様に品名の頭に2Dと付いていたら >仕様4の温度が160から500℃で処理可能で、 >仕様1から3まで同仕様で品名の頭に2Dと付いる >前列と後列は間隔時間が20分
ここも、ちょっと分からないです。
1.「自行」と「前後の行」の説明ですよね? つまり、合計3行の説明なんですね?
2.それで、2Dとついているのは、その3行の内どの分ですか? 自行だけですか、その他の2行もですか?
3.「160から500℃」が入っているの自行だけでいいんですね? 4.上の方でこんな説明がありましたね。 ↓ >品名が2行目と3行目の様に同じであればG列に10分
すると、仕様1から3まで同仕様だった場合、 自行が「2Dタイ」で、次行も「2Dタイ」だったら、 10分にするんですか、20分にするんですか?、
(半平太) 2017/07/16(日) 12:04
1.「自行」と「前後の行」の説明で合計3行の説明なんです。
2.2Dと付いているのは、ランダムでその他の行にも入ります。
連続で3行入る場合もあります。2Dと付いていたら160から500℃で仕様は変わりません。
仕様1から3まで同仕様だった場合、 自行が「2Dタイ」で、次行も「2Dタイ」だったら、10分にします。
2Dタイで次行が2Dタチウオの場合は20分です。宜しくお願いします。
(クマ) 2017/07/16(日) 13:06
>1.「自行」と「前後の行」の説明で合計3行の説明なんです。 と言うことは、一つ上の9行目のタチウオにも関係してきますよね?
9行目のタチウオに着目すると、今までの条件では、
1.8行目とは仕様1〜3迄が同じなので、温度差を利用して別表から間隔を引いてくることになっている。 2.10行目は、品名に2Dが頭に付いていて、仕様1〜3迄が同じで、仕様4が160〜500に収まっているので、20分になることになっている。
サンプルでは正解が100分となっていますので、2の方が劣後するようですが、どこでその区別をするんですか? 私の条件読み違いですか?
(半平太) 2017/07/16(日) 14:38
申し訳ありません。
私には理解不能です。 m(__)m
(半平太) 2017/07/16(日) 15:54
__A__ ____B______ ____C_____ ______D_____ _____E______ _____F_______ ___G___ 1 品名 仕様1 仕様2 仕様3 仕様4 温度差 時間 2 ブリ ○ ○ ○ 10 3 ブリ ○ ○ ○ 10 0 10 4 アジ ○ ○ ○ 10 0 20 5 サンマ ✖ ○ ○ 10 0 75 6 サワラ ○ ○ ✖ 10 0 75 7 チヌ ○ ✖ ○ 10 0 75 8 タイ ○ ○ ○ 200 190 140 9 タチウオ ○ ○ ○ 160 40 100 10 2Dタイ 〇 〇 〇 160〜500 0 20 11 アジ 〇 〇 〇 400 0 20 12 タイ 〇 〇 〇 200 200 160 13 2Dタチウオ 〇 〇 〇 160〜500 0 20 14 アジ ○ ○ ○ 10 190 140 15 サンマ ✖ ○ ○ 10 0 75
サンプルをもう少し延ばしてみたのですが・・・どうでしょうか?
(クマ) 2017/07/16(日) 23:44
次に、2Dを追加した例ですが、2Dが複数行重なった例を全て挙げてください。 現状、2Dが単独の例しかありません。そして、貴方が2D対応しようとしてうまくいかない数式例を挙げてください。 貴方の目の前にある情報が、回答者の前には全く無いので、質問内容が理解できないのですよ。
(???) 2017/07/18(火) 10:09
回答側はあなたの業務に精通しているわけではありません。
なので、素人に電話で説明して作業をしてもらうぐらいの気持ちで説明してください。
回答側のパソコンで現状が再現出来れば、
推理して結果を導くことが可能かも知れません。
(まっつわん) 2017/07/18(火) 10:37
A B C D E F G H I J K L 1 〇 〇 10 75 80 100 1 2 〇 〇 20 75 101 200 2 3 〇 〇 30 75 201 300 3 4 〇 〇 80 1 301 400 4 5 〇 〇 101 2 401 500 5 6 〇 〇 250 3 7 〇 〇 〇 〇 0 10 8 〇 〇 〇 〇 80 1 9 〇 〇 〇 〇 0 10 10 〇 〇 〇 〇 〇 80 20 考え方を変えまして再度質問させていただきます。 1行目から3行目の様にAB列が空欄でCからE列のどれかが空欄の場合はG列へ 75を返し、4行目から6行目の様にAB列が空欄でCからE列のどれかが空欄で F列の数字が80以上の場合は別表のJK列を参照して1から5を返す。 ※501以上は存在しません。 7行目はB列が空欄でF列が0の場合は10を返す。 8行目はB列が空欄でF列が80以上の場合は別表のJK列を参照して1から5を返す。 9行目はA列が空欄でF列が0の場合は10を返す。 10行目はA列からE列まで〇が入ってF列が80以上の場合は20を返す。 ※A列からE列までは〇又は空欄です。 以上のよう条件の場合、どういう方法があるでしょうか? 宜しくお願い致します。 (クマ) 2017/07/22(土) 06:57
場合分けに穴(不明部分)がありますが、そんなケースは現実には無いので無視していいとすれば・・
G1セル =CHOOSE(COUNTBLANK(A1:B1)+1,IF(80<=F1,20,"不明"),IF(F1=0,10,IF(AND(B1="",80<=F1),VLOOKUP(F1,$J$1:$L$5,3),"不明")),IF(COUNTBLANK(C1:E1)=1,IF(F1<80,75,VLOOKUP(F1,$J$1:$L$5,3)),"不明"))
(半平太) 2017/07/22(土) 11:07
A B C D E F G H I J K L 1 〇 〇 10 75 1 20 1 2 〇 〇 20 75 21 50 2 3 〇 〇 30 75 51 100 3 4 〇 〇 80 3 101 300 4 5 〇 〇 101 4 301 500 5 6 〇 〇 250 4 7 〇 〇 〇 〇 0 10 8 〇 〇 〇 〇 80 3 9 〇 〇 〇 〇 0 10 10 〇 〇 〇 〇 〇 80 20 11 〇 〇 〇 0 10 12 〇 〇 〇 10 1
半平太様 場合分けの穴部分を埋めシュミレーションを実施すると考えていた理想の数字を返すことが出来ました。 ありがとうございました。あと追加で申し訳ございませんが下記を追加することで完成すると思います。 これで月曜日からの仕事が楽しみです。
11行目の様にAB列が空欄でCからE列に全て〇の場合及びF列が0の場合はG列へ
10を返し、12行目の様にAB列が空欄でCからE列に全て〇の場合とF列の数字が1以上の場合は別表のJK列を参照して1から5を返す。
宜しくお願い致します。
(クマ) 2017/07/23(日) 02:30
現実に穴があったんですか・・
なら、どんな穴(不明部分)なのか分かった方がいいですよね?
G1セル =CHOOSE(COUNTBLANK(A1:B1)+1,IF(80<=F1,20,"不明(AB共に○でF列が79以下)"),IF(F1=0,10,IF(AND(B1="",80<=F1),VLOOKUP(F1,$J$1:$L$5,3),"不明(Aが○でF列が1〜79、又はBが○でF列が1以上)")),CHOOSE(COUNTBLANK(C1:E1)+1,IF(F1=0,10,VLOOKUP(F1,$J$1:$L$5,3)),IF(F1<80,75,VLOOKUP(F1,$J$1:$L$5,3)),"不明(A〜Eに一つだけ○",""))
(半平太) 2017/07/23(日) 07:18
=CHOOSE(COUNTBLANK(A1:B1)+1,・・,・・,CHOOSE(COUNTBLANK(C1:E1)+1,IF(F1=0,10,VLOOKUP(F1,$J$1:$L$5,3)),IF(F1<80,75,VLOOKUP(F1,$J$1:$L$5,3)),"不明(A〜Eに一つだけ○","")) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~↑~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ここですが、何か意図と違う結果が出るんですか?
(半平太) 2017/07/23(日) 09:50
A B C D E F G H I J K L 1 〇 〇 10 75 1 20 1 2 〇 〇 20 75 21 50 2 3 〇 〇 30 75 51 100 3 4 〇 〇 80 3 201 300 4 5 〇 〇 〇 0 10 301 500 5 6 〇 〇 〇 210 4 7 〇 〇 〇 〇 0 10 8 〇 〇 〇 〇 80 3 9 〇 〇 〇 〇 0 10 10 〇 〇 〇 〇 80 20 11 〇 〇 〇 〇 〇 〇 0 10 12 〇 〇 〇 〇 〇 0 10 13 〇 〇 〇 〇 〇 0 10 14 〇 〇 〇 〇 0 10 15 〇 〇 〇 〇 0 10 16 〇 〇 〇 〇 〇 0 10 半平太様 場合分けの穴部分を埋めシュミレーションを実施すると1列増やさないと無理そうでした。申し訳ございませんが11行目のA〜F列まで〇が入れば10を返す。12〜16行目の条件を追加で完成と思います。その他は想定される条件を入れても問題ありませんでした。お手数をおかけしますが宜しくお願いします。 =CHOOSE(COUNTBLANK(A2:B2)+1,IF(80<=G2,20,"20"),IF(G2=0,10,IF(AND(C2="",80<=G2),VLOOKUP(G2,$J$2:$L$6,3),"20")),CHOOSE(COUNTBLANK(D2:F2)+1,IF(G2=0,10,VLOOKUP(G2,$J$2:$L$6,3)),IF(G2<80,75,VLOOKUP(G2,$J$2:$L$6,3)),"75",""))
(クマ) 2017/07/23(日) 17:18
そう言われましても、いままで 2列 + 3列 = 計5列 の場合の説明しか受けてないです。
計6列になると、どんな処理にしないといけないのか推測すら出来ません。
(半平太) 2017/07/23(日) 18:48
A B C D E F G H I J K L 1 〇 〇 10 75 1 20 1 2 〇 〇 20 75 21 50 2 3 〇 〇 30 75 51 100 3 4 〇 〇 80 3 201 300 4 5 〇 〇 〇 0 10 301 500 5 6 〇 〇 〇 210 4 7 〇 〇 〇 〇 0 10 8 〇 〇 〇 〇 80 3 9 〇 〇 〇 〇 0 10 10 〇 〇 〇 〇 80 20 11 〇 〇 〇 〇 〇 〇 0 10 12 〇 〇 〇 〇 〇 0 10 13 〇 〇 〇 〇 0 10 14 〇 〇 〇 〇 〇 0 10 (半平太)様 お手数をおかけしますが、宜しくお願いします。
1行目から3行目の様にABC列が空欄でDからF列のどれかが空欄の場合はH列へ
75を返し、4行目から6行目の様にABC列が空欄でDからF列のどれかが空欄で
G列の数字が80以上の場合は別表のJK列を参照して1から5を返す。
※501以上は存在しません。
7行目はAB列が空欄でG列が0の場合は10を返す。
8行目はAB列が空欄でG列が80以上の場合は別表のJK列を参照して1から5を返す。
9行目はAとC列が空欄でG列が0の場合は10を返す。
10行目はAB列が空欄でC列からF列まで〇が入ってG列が80以上の場合は20を返す。
11行目のA〜F列まで〇が入ってG列が0の場合は10を返す。
12行目はB列のみ空欄でG列が0の場合10を返す。
13行目はA列とC列が空欄でG列が0の場合は10を返す。
14行目はA列のみ空欄でG列が0の場合は10を返す。
(クマ) 2017/07/23(日) 20:54
> 5 〇 〇 〇 0 10
>4行目から6行目の様にABC列が空欄でDからF列のどれかが空欄で >G列の数字が80以上の場合は別表のJK列を参照して1から5を返す。
5行目は説明と合っていない気がします。
> 8 〇 〇 〇 〇 80 3 > 10 〇 〇 〇 〇 80 20
> 8行目はAB列が空欄でG列が80以上の場合は別表のJK列を参照して1から5を返す。 >10行目はAB列が空欄でC列からF列まで〇が入ってG列が80以上の場合は20を返す。
8行目の「3」はミスですよね? 10行目と同じですから「20」だと思うので。。
H1セル =IF(COUNTBLANK(A1:F1)=6,"",CHOOSE(COUNTBLANK(A1:C1)+1,IF(G1=0,10,"不明1"),IF(AND(OR(A1="",B1=""),G1=0),10,"不明2"),IF(OR(C1<>"",B1<>""),IF(G1=0,10,IF(80<=G1,IF(AND(C1<>"",COUNTBLANK(D1:F1)=0),20,"不明3"),"不明4")),"不明5"),IF(COUNTBLANK(D1:F1)=1,IF(80<=G1,VLOOKUP(G1,J$1:L$5,3),75),"不明6")))
(半平太) 2017/07/23(日) 23:19
半平太様 少し条件を変更したのですが、自力で出来ませんので教えていただきますか。 宜しくお願い致します。
A B C D E F G H I J K L 1 〇 〇 10 75 1 20 1 2 〇 〇 20 75 21 50 2 3 〇 〇 30 75 51 100 3 4 〇 〇 80 3 101 300 4 5 〇 〇 101 4 301 500 5 6 〇 〇 250 4 7 〇 〇 〇 0 10 8 〇 〇 〇 80 3 9 〇 〇 〇 〇 0 10 10 〇 〇 〇 〇 80 20 11 〇 〇 〇 〇 0 20 1行目から3行目の様にCからE列のどれかが空欄でF列の数字が79以下の場合はG列へ75を返し、 4行目から6行目の様にCからE列のどれかが空欄でF列の数字が80以上の場合は別表のJK列を参照して1から5を返す。 7行目はCからE列全て〇でF列の数字が0の場合G列へ20を返す。 8行目はCからE列全て〇でF列が1以上の場合は別表のJK列を参照して1から5を返す。 9行目はA列が空欄でB列からE列まで〇でF列が0の場合は10を返す。 10行目はA列が空欄でB列からE列まで〇でF列が1以上の場合は別表のJK列を参照して1から5を返す。 11行目はB列のみ空欄でF列が0の場合は20を返す。
(クマ) 2017/08/05(土) 11:27
> 10 〇 〇 〇 〇 80 20
10行目は「3」ですよね? このルールなので。 ↓ >10行目はA列が空欄でB列からE列まで〇でF列が1以上の場合は、別表のJK列を参照して1から5を返す
※「別表のJK列を参照して1から5を返す。」と言う部分が幾つか出て来て煩雑なので、そこは名前定義で処理することにします。
G1セルを選択してから、下記手順で名前定義をしてください。
Ctrlキー押しながら、F3キーを押下すると、名前定義ダイアログが出ますので、以下の名前定義をしてください。 名前 → 「別表」 参照範囲(R) ボックスに → =VLOOKUP($F1,$J$1:$L$5,3)
上述の名前定義が終わったら、G1セルに下式を入力。
=CHOOSE(COUNTBLANK(A1:B1)+1,"不明1",IF(A1="",IF(COUNTBLANK(C1:E1)=0,IF(F1=0,10,別表),"不明2"),IF(F1=0,20,"不明3")),CHOOSE(COUNTBLANK(C1:E1)+1,IF(F1=0,10,別表),IF(F1<80,75,別表)))
(半平太) 2017/08/05(土) 18:51
>計算結果が0:00となるのですが?
それは、セルの書式(表示形式)が「時刻」になっているからです。 「標準」にしてみてください。
(半平太) 2017/08/06(日) 09:54
「時間計算」って、私の回答に関係しているんでしょうか?
どう云う状況なのか呑み込めないのですけど?
(半平太) 2017/08/06(日) 14:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.