[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『機械貸出表の作成』(奮闘中)
機械の貸出表を作りたいのですが、
現在二つのシートに分けて
シート1が
A B C D
1 機械1(セル結合)
2 貸出先 貸出日 返却日 担当
3 倉庫1 2015/2/27 2015/3/4 ○○
シート2に貸出品一覧として
A B
1 製品名 状況
2 機械1
となってます。
貸出機械は何台もありますが、とりあえず一台だけ例で出しました。
シート2のB1の状況にシート1の貸出日から返却日がパソコンの日付と比例するように
過ぎている場合は”返却日超過”、貸出中の場合は”貸出中”、貸出日の日付がまだ先の場合”予約”と出るようにしたいのですが、数式はどのようにしたらよろしいでしょうか?
掲示板に出ているものでやってみてもできなかったので・・・
申し訳ありませんがよろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:unknown >
A B C D E F G 1 機械1 製品名 状況 2 貸出先 貸出日 返却日 担当 機械1 予約 3 倉庫1 3/7 3/10 ○○
同シートで例。
G2 =IF(MAX(C:C)<TODAY(),"超過",IF(MAX(B:B)>TODAY(),"予約","貸出中")) (GobGob) 2015/03/05(木) 11:31
A B C D 1 機械1 2 貸出先 貸出日 返却日 担当 3 倉庫1 3/7 3/10 ○○ 4 倉庫2 3/11 3/13 △△ 5 機械2 6 倉庫1 3/7 3/11 ○○
もしこのようなレイアウトの場合は、数式だけではできないです。
もしこの場合でしたらE列などに機械1などの製品名を表示できないでしょうか?
(デイト) 2015/03/05(木) 11:49
A B C D E F G H
1 機械1(セル結合) 機械2
2 貸出先 貸出日 返却日 担当 貸出先 貸出日 返却日 担当
3 倉庫1 2015/2/27 2015/3/4 ○○ 倉庫2 2015/3/1 2015/3/5 ××
といった感じです。
(奮闘中) 2015/03/05(木) 11:54
回答じゃないですが、こういう表ならなんとかできそう? [A] [B] [C] [D] [E] [ 1]機器名 貸出先 貸出日 返却日 担当 [ 2]機械1 倉庫1 3/7 3/10 ○○ [ 3]機械1 倉庫2 3/11 3/13 △△ [ 4]機械2 倉庫1 3/7 3/10 ×× (稲葉) 2015/03/05(木) 14:08
1 機械1(セル結合) 機械2(セル結合) 2 貸出先 貸出日 返却日 担当 結果 貸出先 貸出日 返却日 担当 結果 3 倉庫1 2015/2/27 2015/3/4 ○○ 済 倉庫2 2015/3/1 2015/3/5 ×× 未
こちらでは無理でしょうか?
結果という行を追加いたしました。
貸出日から返却日がパソコンの日付と比例するように
過ぎている尚且つ結果が”未”場合は”超過”日にちが過ぎており結果が”済”の場合は”在庫有”、貸出中の場合は”貸出中”、貸出日の日付がまだ先の場合”予約”と出るようには不可能でしょうか?
(奮闘中) 2015/03/05(木) 14:16
H3 =IF(COUNTIF($A:$A,$G3),(INDEX(C:C,MAX(IF($A$2:$A$999=$G3,ROW($A$2:$A$999))))))
I3 =IF(COUNTIF($A:$A,$G3),(INDEX(D:D,MAX(IF($A$2:$A$999=$G3,ROW($A$2:$A$999))))))
Ctrl Shift Enter配列数式で確定
J3 =IF(H3=0,"在庫",IF(H3<TODAY(),"超過",IF(I3>TODAY(),"予約","貸出中")))
すいませんこれが私の限界です。どうやっても一つにまとまりませんでした。申し訳ありません。
(デイト) 2015/03/05(木) 14:17
その表でやりたいなら、GobGobさんの式を必要な数だけ用意すればいいんじゃないの? まさかやってもいないで聞いてないよね? (稲葉) 2015/03/05(木) 14:26
上級者からもっとすばらしい関数が提示されると思いますが・・・ Sheet2のB2セル =IF(MAX(OFFSET(INDIRECT("Sheet1!"&ADDRESS(1,MATCH(A2,Sheet1!1:1,0))),2,2))<TODAY(),"超過",IF(MAX(OFFSET(INDIRECT("Sheet1!"&ADDRESS(1,MATCH(A2,Sheet1!1:1,0))),2,1))>TODAY(),"予約","貸出中")) (se_9) 2015/03/05(木) 15:03
A B C D E F G H I J K L 1 機械1 機械2 製品名 予約 2 貸出先 貸出日 返却日 担当 貸出先 貸出日 返却日 担当 機械2 貸出中 3 倉庫1 2/27 3/4 ○○ 倉庫2 3/1 3/5 ×× 4 5 6 またまためんどくさいので同じシートで。
L2 =IF(COUNT(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1)),IF(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+2))<TODAY(),"超過",IF(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1))>TODAY(),"予約","貸出中")),"在庫") (GobGob) 2015/03/05(木) 16:08
(奮闘中) 2015/03/06(金) 11:35
(奮闘中) 2015/03/06(金) 11:44
貸出日が設定されてない(予約なし)と「在庫」としてま。 (GobGob) 2015/03/06(金) 11:47
(奮闘中) 2015/03/06(金) 12:03
>もしGに2/27と入力してHに3/1と入力したら超過と出ずに >在庫として出ます >そして下2/27の下に3/13と入力し3/1の下に3/15と入力しても在庫としてでます。 >どこか変えないといけませんか?
K2 を 「機械2」が全角、半角とか違ってんじゃないの? (機械2 なら 貸し出し中とでるけど) (GobGob) 2015/03/06(金) 12:09
A B C D E F G H I J K
1 機械1 機械2 製品名 予約
2 貸出先 貸出日 返却日 担当 貸出先 貸出日 返却日 担当 機械2 在庫
3 倉庫 12/27 3/4 ○○ 倉庫2 3/1 3/4 ××
4 倉庫2 3/13 3/15 △△
Kがどうしても在庫と出てしまします。
本当にお手間をおかけして申し訳ありません。
(奮闘中) 2015/03/06(金) 13:31
正直な話、旨く行くハズないと思っていたのですけど、 突然「できました!!」になったので驚いてしまった。
例えばですけど、3/1に貸出して、3/10に返却予定の場合 2 貸出先 貸出日 返却日 担当 3 倉庫 3/1 3/10 ○○
と書きますよね?
それで、3/11になった時、 予定通り返却されても、返却されなくても、その管理台帳は全く同じなのでしょう? どこで「在庫/超過」の区別をするんですか?
上の方で結果欄とか作って「未/済」でその区別をしたらどうか、とか言う話が 出ていたと思うのですけど、どうなっちゃったんですか?
(半平太) 2015/03/11(水) 07:15
(奮闘中) 2015/03/11(水) 15:05
>現在は完了の分はセルから消して 違うシートに履歴として残しております。
納得です。 m(__)m
念のため、今使っている数式を再確認したいので、ここに貼り付けて頂けませんか?
(半平太) 2015/03/11(水) 16:03
A B C D E F G H I J K L 1 機械1 機械2 製品名 予約 2 貸出先 貸出日 返却日 担当 貸出先 貸出日 返却日 担当 機械2 貸出中 3 倉庫1 2/27 3/4 ○○ 倉庫2 3/1 3/5 ×× 4 5 6 またまためんどくさいので同じシートで。
L2 =IF(COUNT(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1)),IF(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+2))<TODAY(),"超過",IF(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1))>TODAY(),"予約","貸出中")),"在庫")
こちらを使わせていただいております。
(奮闘中) 2015/03/12(木) 09:09
GobGobさんにやってもらった方がいいかもしれませんが、一案です。
以下に変更
L2セル =IF(K2="","",IF(COUNT(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1)),IF(MOD(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+2))-1,400000)+1<TODAY(),"超過",IF(MAX(INDEX(A:I,0,MATCH(K2,A$1:I$1,0)+1))>TODAY(),"予約","貸出中")),"在庫"))
(半平太) 2015/03/12(木) 10:40
ありがとうございます。
何とかできました。
もしよければでいいのですが、
こちらの数式の400000や+1は何を表しているか教えていただけませんか?
(奮闘中) 2015/03/12(木) 13:51
>こちらの数式の400000や+1は何を表しているか
MAX関数は空白しかないときは、0を返してきます。 「0」は日付なら「1900/1/0」意味であり、大昔の日ですから、当然「超過」になります。
この0をなんとか未来の日付に変えなきゃなりません。 (そう考えたと言うことです。別の方法がないと云う訳ではないです)
=MOD(0-1,400000)+1 これで、400000になってくれます。 400000は日付の2995/2/27と同じなので、十分に未来の日です。
何故、わざわざ1マイナスしてから、1プラスするのか・・・ですね? 0をマイナス1にしないと上の式は400000になってくれません。 すると、今度は正常な日付が前日になってしまい具合が悪い。 なので、それらを元の日付に戻してやるため(+1)です。
(半平太) 2015/03/12(木) 16:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.