gooポイントが当たる質問投稿キャンペーン>>

エクセルを使って受注一覧表と出荷スケジュールの連動をさせたいです。
イメージは以下の通りです。

Sheet1に注文一覧表を作ります。(現在、既にこの表はエクセルで存在します)
この表(Sheet1)では、出荷スケジュールが分かりづらいので、現在はSheet2の表を印刷し、手書きで数量を記入して管理をしています。

この手書きの作業がとても手間なので、できればSheet1からデータを読み込んで自動的にSheet2に数量が表示されるようにさせたいです。
その場合、Sheet2のB2にはどのような関数を入れれば良いのでしょうか。


Sheet1
注文番号 商品名 出荷月 出荷日 数量
1001    AA-01   10    2   100
1002    AA-02   10    2   150
1003    AA-03   10    2   200
1004    AA-04   10    4   300
1005    AA-03   10    5   100
 ・
 ・
 ・

Sheet2
商品名    1日   2日  3日  4日  5日 ~ 31日
AA-01
AA-02  
AA-03  
AA-04  
AA-05
 ・
 ・
 ・       
(商品名は400種類程度あります)

大変困っています。どなたか良い方法をご教示いただけないでしょうか。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

 今仮に、Sheet1で「注文番号」と入力されているセルがSheet1のA1セルであるものとします。


 又、Sheet2のA2セルに「商品名」と入力し、Sheet2のA3以下に各商品名を入力し、Sheet2のB2~Sheet2のAF2にかけて、1~31の数値を入力し、Sheet2のA1セルには月を表す数値を入力するものとします。

【方法その1】作業列と関数を併用する方法
 まず、適当な列(ここでは仮にSheet3のA列とします)を作業列として使用する事とし、そのA2セルに次の数式を入力して下さい。

=IF(AND(INDEX(Sheet1!$B:$B,ROW())<>"",COUNT(INDEX(Sheet1!$C:$C,ROW()),INDEX(Sheet1!$D:$D,ROW()))=2,ISNUMBER((INDEX(Sheet1!$C:$C,ROW())&"/"&INDEX(Sheet1!$D:$D,ROW()))+0)),INDEX(Sheet1!$B:$B,ROW())&":"&INDEX(Sheet1!$C:$C,ROW())&"/"&INDEX(Sheet1!$D:$D,ROW()),"")

 次に、Sheet3のA2セルをコピーして、Sheet3のA3以下に貼り付けて下さい。

 次に、Sheet2のB2~Sheet2のAF2にかけて、1~31の数値を入力して下さい。
 次に、Sheet2のB3セルに次の数式を入力して下さい。

=IF(COUNTIF(Sheet3!$A:$A,"="&$A3&":"&$A$1&"/"&B$2),SUMIF(Sheet3!$A:$A,"="&$A3&":"&$A$1&"/"&B$2,Sheet1!$E:$E),"")

 次に、Sheet2のB3セルをコピーして、Sheet2のC3~AF3の範囲に貼り付けて下さい。
 次に、Sheet2のB3~AF3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。

 後は、Sheet2のA3以下に各商品名を入力し、Sheet2のA1セルには月を表す数値を入力しますと、日付毎の各商品の出荷数が自動的に表示されます。



【方法その2】SUMPRODUCT関数で処理する方法(作業列は不要)
 ※こちらの関数は、元データが500行以上でも、何行あっても、対応しますが、元データの行数が、数千行以上にもなる場合は、計算処理が重くなります。(元データの行数に合わせて、参照範囲が変化するため、行数が200~300行程度ならば、ANo.1様の関数よりは、早くなると思います)
 まず、Sheet2のB2~Sheet2のAF2にかけて、1~31の数値を入力して下さい。
 次に、Sheet2のB3セルに次の数式を入力して下さい。

=IF(SUMPRODUCT((Sheet1!$B$1:INDEX(Sheet1!$B:$B,MATCH(9^9,Sheet1!$E:$E))=$A3)*(Sheet1!$C$1:INDEX(Sheet1!$C:$C,MATCH(9^9,Sheet1!$E:$E))=$A$1)*(Sheet1!$D$1:INDEX(Sheet1!$D:$D,MATCH(9^9,Sheet1!$E:$E))=B$2)),SUMPRODUCT((INDEX(Sheet1!$B:$B,ROW(Sheet1!$B$1)+1):INDEX(Sheet1!$B:$B,MATCH(9^9,Sheet1!$E:$E))=$A3)*(INDEX(Sheet1!$C:$C,ROW(Sheet1!$C$1)+1):INDEX(Sheet1!$C:$C,MATCH(9^9,Sheet1!$E:$E))=$A$1)*(INDEX(Sheet1!$D:$D,ROW(Sheet1!$D$1)+1):INDEX(Sheet1!$D:$D,MATCH(9^9,Sheet1!$E:$E))=B$2)*INDEX(Sheet1!$E:$E,ROW(Sheet1!$E$1)+1):INDEX(Sheet1!$E:$E,MATCH(9^9,Sheet1!$E:$E))),"")

 次に、Sheet2のB3セルをコピーして、Sheet2のC3~AF3の範囲に貼り付けて下さい。
 次に、Sheet2のB3~AF3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。

 後は、Sheet2のA3以下に各商品名を入力し、Sheet2のA1セルには月を表す数値を入力しますと、日付毎の各商品の出荷数が自動的に表示されます。



【方法その3】Excel2007以降のパーションでのみ使用可能な関数で処理する方法(作業列は不要で、SUMPRODUCT関数よりも高速処理が可能)
 まず、Sheet2のB2~Sheet2のAF2にかけて、1~31の数値を入力して下さい。
 次に、Sheet2のB3セルに次の数式を入力して下さい。

=IF(COUNTIFS(Sheet1!$B:$B,$A3,Sheet1!$C:$C,$A$1,Sheet1!$D:$D,B$2),SUMIFS(Sheet1!$E:$E,Sheet1!$B:$B,$A3,Sheet1!$C:$C,$A$1,Sheet1!$D:$D,B$2),"")

 次に、Sheet2のB3セルをコピーして、Sheet2のC3~AF3の範囲に貼り付けて下さい。
 次に、Sheet2のB3~AF3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。

 後は、Sheet2のA3以下に各商品名を入力し、Sheet2のA1セルには月を表す数値を入力しますと、日付毎の各商品の出荷数が自動的に表示されます。
「エクセルにて受注一覧と出荷スケジュールを」の回答画像2
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

お礼日時:2011/10/14 22:58

タイプとしては、エクセルの「表の組み換え」です。

関数でやろうとすると、既に他回答で出ているように、複雑になります。
ーー
一方VBAでやれば思ったとおりに簡単に出来ます。
仕事の絡んだようなこと(取引関係など)で、エクセルで処理するには、VBAが出来ることが必須だと思います。
VBAを勉強したことありますか。VBAを勉強するか、非常に意味も難しい関数式をコピペして、意味も判らず使うか。
好きなほうを選択するしかない。どちらも現状では、課題を丸投げで、「したい」といっているだけで、本質問に対し、基礎体力不足か。
ーー
例データ Sheet1
注文番号商品名出荷月出荷日数量
1001AA-01102100
1002AA-02102150
1003AA-03102200
1004AA-0210250
1005AA-04104300
1006AA-0410430
1007AA-03105100
1008AA-0110650
1009AA-0210670
1010AA-0310680
1011AA-0110640
1012AA-0210610
1013AA-0310720
別シートにコピーし商品名でソート Sheet2 A1:E14
注文番号商品名出荷月出荷日数量
1001AA-01102100
1008AA-0110650
1011AA-0110640
1002AA-02102150
1004AA-0210250
1009AA-0210670
1012AA-0210610
1003AA-03102200
1007AA-03105100
1010AA-0310680
1013AA-0310720
1005AA-04104300
1006AA-0410430
ーーー
コード ヒョウジュンモジュール
Sub test01()
Dim sh2, sh3
Set sh2 = Worksheets("Sheet2")
Set sh3 = Worksheets("Sheet3")
' 準備
d = sh2.Range("a65536").End(xlUp).Row 'データ最終行
m = sh2.Cells(2, "B")
md = DateSerial(2011, sh2.Cells(2, "C"), sh2.Cells(2, "D"))
MsgBox md
k = 2
sh3.Cells(2, "A") = sh2.Cells(2, "B")
'--
For i = 2 To d
dt = DateSerial(2011, sh2.Cells(i, "C"), sh2.Cells(i, "D")) '日付作成
If sh2.Cells(i, "B") = m Then '商品が変わったか
'--変わらない
c = sh3.Range("B1:Z1").Find(dt).Column ' 該当日付の列を見つける
sh3.Cells(k, c) = sh3.Cells(k, c) + sh2.Cells(i, "E") 'その列に数量を足しこむ
Else
'--変わった
k = k + 1 '次の商品のため、次行に
sh3.Cells(k, "A") = sh2.Cells(i, "B")
c = sh3.Range("B1:Z1").Find(dt).Column '該当日付の列を見つける
sh3.Cells(k, c) = sh3.Cells(k, c) + sh2.Cells(i, "E") 'その列に数量を足しこむ
'--次の行処理の準備
m = sh2.Cells(i, "B")
md = DateSerial(2011, sh2.Cells(i, "C"), sh2.Cells(i, "D"))
End If
Next i
End Sub
実行結果 Sheet3 A1:H4
下記日付は日付シリアル値を使っているから注意。それを「1日」のように表示する表示形式は、わかっているよね。
商品名2011/10/12011/10/22011/10/32011/10/42011/10/52011/10/62011/10/7  ->以下略
AA-01-100---90
AA-02-200---80
AA-03-200--1008020
AA-04---330
ーは空白セルを示す。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
アドバイスの通りじっくりVBAも勉強してみます。

お礼日時:2011/10/14 22:55

状況から推測すると,関数を使って作成する方法は全くお奨めできません。

(元データのリストが伸びていくと,加速度的にシートの計算が重くなっていきます。実際に対象とするリストの行数次第で,耐えられる範囲内であることが確認できれば,関数もありです)

ご利用のエクセルのバージョンが不明ですが,Excel2003まではデータメニュー,2007以降では挿入タブから「ピボットテーブルレポート」の作成を開始し,ページ(2007以降ではフィルタ)に「月」,行に「日」,列に「商品」,データ(2007以降ではΣ)に「数量」を投入することで,メンドウな関数を一切使わずに(オマケで当月発生する商品一覧をわざわざ事前に用意する必要もなく),必要な集計が直ちに得られます。

ページフィルタに現れる選択肢から,集計したい月を選びます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
バージョンは2007です。早速試してみます。

お礼日時:2011/10/14 22:57

一例です。


B2に以下の数式を入力、縦横にコピー
=IF($A2<>"",SUMPRODUCT((Sheet1!$B$2:$B$500=$A2)*(Sheet1!$D$2:$D$500=B$1)*Sheet1!$E$2:$E$500),"")
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございます。

お礼日時:2011/10/14 22:59

このQ&Aに関連する人気のQ&A

VBA 意味」に関するQ&A: VBとVBAの違い

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで出荷・在庫管理の方法

仕事でExcelで商品の出荷と在庫の管理表を作るように言われたのですが、次のような場合の関数の書き方を教えてください。

賞味期限がある商品で、出荷指示が出た場合に賞味期限の古い方から自動的に在庫を減らしたいです。

例えば、2011/12/10賞味期限のオレンジジュースが200個、2011/12/25賞味期限のが500個あったとして、300個出荷する時に12/10のから200個、足りない100個を12/25賞味期限のから自動的に差し引かれるようにしたいのです。


[セルA1]オレンジジュース、[B1]2011/12/10(賞味期限)、[C1]200(在庫)
[B2]2011/12/25、[C2]500

IF関数とか考えてみたのですがなかなかうまくいかなくて…

ちなみにExcel2007です。

よろしくお願いしますm(__)m

Aベストアンサー

いまご質問でヤリタイ事:
>賞味期限がある商品で、出荷指示が出た場合に賞味期限の古い方から自動的に在庫を減らしたい

【大前提】今作成するのは「実際に入庫・出庫が発生した分」の記録です。
 つまり「将来の入庫・出庫予定」は記入しません。


添付図参照:
C:F列,I:K列は生データを記入する欄です
G3:
=IF(F3="","",MIN(MAX(0,SUMIF(E:E,"<"&E3,F:F)+SUMIF($E$3:E3,E3,$F$3:F3)-SUM(K:K)),F3))
以下コピー

A4:
=SUM(G:G)
A6:
=SUM(F:F)-SUM(K:K)


ご質問に書いてないオマケ:
 同じ日付で期限がある場合,リストの上から順に減らしていきます





#お願い
このタイプのご相談で非常に多く見かけますが,「実はこれもしたいあれもしたい」を後出しで追加質問しないでください。たとえば「どの品を出した・出せばいいのか計算で並べたい」とか。
もしもそういう欲が出たときは,まずはこのご質問の内容を解決した上で一度ご相談を解決で閉じ,改めて「次はこういう状況で今度はこういう結果を並べたい」とヤリタイ事をキチンと説明して,次のご相談を遠慮無く投稿してみてください。

いまご質問でヤリタイ事:
>賞味期限がある商品で、出荷指示が出た場合に賞味期限の古い方から自動的に在庫を減らしたい

【大前提】今作成するのは「実際に入庫・出庫が発生した分」の記録です。
 つまり「将来の入庫・出庫予定」は記入しません。


添付図参照:
C:F列,I:K列は生データを記入する欄です
G3:
=IF(F3="","",MIN(MAX(0,SUMIF(E:E,"<"&E3,F:F)+SUMIF($E$3:E3,E3,$F$3:F3)-SUM(K:K)),F3))
以下コピー

A4:
=SUM(G:G)
A6:
=SUM(F:F)-SUM(K:K)


ご質問に書いてないオマケ:
 同じ...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QExcelで出荷表をマクロを使用して作りたい

エクセルでリストから出荷日を拾って表に自動で展開されるようなものを作成したいのですが、
複雑で悩んでいます。


品名    出荷日     数
メロン   3/15     10
バナナ   3/18     30
キウイ   3/20     5

上記のような表を、下記のような表に作り変えたいのですがどのようにマクロを組んだらできるのでしょうか?

                 出荷日
品名    ~3/13 3/14 3/15 3/16 3/17 3/18 3/19 3/20~        
メロン           10 
バナナ                     30
キウイ                            5


品名と日付が合う場所を探して数欄を自動入力するようにしたいです。
申し訳ありません。
お力をお貸しください。

Aベストアンサー

こんばんは!
関数ではダメですか?

↓の画像では元データ(Sheet1)をSheet2に表示するようにしています。
Sheet1に作業用の列を設けます。
作業列E2セルに
=IF(COUNTA(A2:B2),A2&"_"&B2,"")
という数式を入れ、これ以上データはない!という位まで下へフィル&コピーしておきます。

そしてSheet2のB3セルに
=IFERROR(INDEX(Sheet1!$C:$C,MATCH($A3&"_"&B$2,Sheet1!$E:$E,0)),"")
という数式を入れ、列・行方向にフィルハンドルでコピー!
これで画像のような感じになります。

※ 当然VBAでも可能ですが、今回の質問は関数の方が簡単だと思います。
※ VBAでやる場合、各Sheetの配置が1行・1列でも違えば全く意図しない結果になりますので、
質問文でも行・列の配置が回答者に判るように示された方が良いと思います。m(_ _)m

QExcelで日別に入力されたデータを月別に集計するにはどうしたらいいのでしょうか。

Excelで月別の集計をしたいのですが
例えば
  日付    数量
10月25日  200
10月27日  150
10月30日  120
11月 1日  200
11月 3日  150
のように、日付が飛び飛びで連続していなくい日々の数量を、上の行から順番に入力していった場合に(月が替わる行が決まっていない)月別の集計を取る方法はないでしょうか。


 

Aベストアンサー

どのように集計する月を指定するのかが書かれていませんが、例えば11月分の合計を出したいなら

1)11月までの合計から10月までの合計を引く方法
 =SUMIF(A:A,"<=11/30",B:B)-SUMIF(A:A,"<=10/31",B:B)

2)月が「11」のB列を合計する方法
 =SUMPRODUCT((MONTH(A2:A100)=11)*(B2:B100))

なども考えられます。

でもエクセルなら一番オーソドックスな方法はピボットテーブルでしょう。C列に
 =TEXT(A1,"YYYY/MM")
で「2008/11」のような文字列を生成しておいてピボットテーブルで集計すれば、シート上にある全ての月の合計が一発で求められます。
ピボットテーブルの使い方はGoogleなどで検索したらたくさん見つかります
http://www.viplt.ne.jp/tomy/pibot.html

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCEL(IF関数)でCELLの色を変える。

例えば、IF関数で真ならセルの色を赤色にしたり、文字の色を変えたりする関数とかはあるのでしょうか?わかりません・・・知ってる方いらっしゃれば教えて下さい。

Aベストアンサー

こんばんは。

関数ではありませんが‥

<条件付き書式>ではダメなのでしょうか?

メニュー<書式>-<条件付き書式> です。

どのような条件を想定していらっしゃるのかわかりませんが、
<条件付き書式>については↓の参考URLをご覧ください。

▽条件付き書式・その1
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm

▽条件付き書式・その2
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu5.htm

参考URL:http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm

Qエクセルを使った、在庫管理と発注。

エクセルを使った、在庫管理と発注。


私は、エクセルが得意ではないのですが、今日、用事で退社する上司に「手が空いているので何かやっておくことがあったら言ってください」といったところ、思わぬ無茶振りをされてしまい、とても困っています。在庫管理などに関する知識がまったく無い人間なので、説明が長くなってしまうことと、わかりにくい点があるかもしれないですが、なるべくわかりやすく書こうと思うのでご協力お願いいたします。


現在当社の商品在庫は、エクセルで管理されております。
発注は目視で足りないと思ったら適性分だけ頼むかたちです。

今度上司のしたいことはエクセルの在庫データを使って「発注リスト」が自動的に作成されることです。

例えば、商品Aの適正在庫が5だとして、それを切ったら自動でリストの中に適正在庫になるような個数と商品名が載る。あとはそれをプリントアウト(パソコンからも送れるのでそれで自動発注できればなお良いです)してFAXで発注。というかたちです。

それは、エクセル上で全部済めばそれでも良いですが、そのやり方が複雑な場合、こんな方法、こんな簡単なソフトがあるよ、という意見がありましたらよろしくお願いしたいです!!

当社POSシステムはございません。導入もいたしませんのでどうかパソコンでの方法でご回答お願いいたします。

アクセスは、当社で使える者がいないため、なるべくエクセルを使う形にしたいみたいです。

何か説明が足りないようでしたらご指摘ください。

よろしくお願いいたします!

エクセルを使った、在庫管理と発注。


私は、エクセルが得意ではないのですが、今日、用事で退社する上司に「手が空いているので何かやっておくことがあったら言ってください」といったところ、思わぬ無茶振りをされてしまい、とても困っています。在庫管理などに関する知識がまったく無い人間なので、説明が長くなってしまうことと、わかりにくい点があるかもしれないですが、なるべくわかりやすく書こうと思うのでご協力お願いいたします。


現在当社の商品在庫は、エクセルで管理されております。
発注は目視...続きを読む

Aベストアンサー

No.1です!
何度もごめんなさい。
前回は単に適正在庫数に足らないものだけを表示するだけです。
ご希望としてはそのリストを印刷できる表にしたい!ということだと思いますので、
もう一度画像をアップしてみます。

商品補充リストをSheet2に表示するようにしてみました。
Sheet1は前回そのままで、

Sheet2のA2セルに
=IF(COUNT(Sheet1!$C$2:$C$1000)<ROW(A1),"",INDEX(Sheet1!A$2:A$1000,SMALL(IF(Sheet1!$C$2:$D$1000<>"",ROW($A$1:$A$999)),ROW(A1))))

これは配列数式になってしまいますので、データ量が多い場合はコンピュータにかなりの負担を与えます。
という訳で、Sheet1の1000行目まで対応できる数式にしていました。

Sheet2のA2セルにこの画面からコピー&ペーストしただけではエラーになると思います。
貼り付け後、F2キーを押す、または貼り付けセルをダブルクリック、または数式バー内で一度クリックします。
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

そして、B2セルに
=IF(A2="","",VLOOKUP(A2,Sheet1!A:C,3,0))
(これは配列数式ではありません)

最後にZ2・B2セルを範囲指定し、B2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になればよいのですが・・・
何度も失礼しました。m(__)m

No.1です!
何度もごめんなさい。
前回は単に適正在庫数に足らないものだけを表示するだけです。
ご希望としてはそのリストを印刷できる表にしたい!ということだと思いますので、
もう一度画像をアップしてみます。

商品補充リストをSheet2に表示するようにしてみました。
Sheet1は前回そのままで、

Sheet2のA2セルに
=IF(COUNT(Sheet1!$C$2:$C$1000)<ROW(A1),"",INDEX(Sheet1!A$2:A$1000,SMALL(IF(Sheet1!$C$2:$D$1000<>"",ROW($A$1:$A$999)),ROW(A1))))

これは配列数式になってしまいますので、データ量が多...続きを読む

QExcel日程表:開始日~終了日を自動で色付けたい

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見してわかるようにしたいです。
複数案件の進行が重複し、稼働の重たくなる時期を確かめるためです。


※2003でも2007でも使える書式設定でお願いします。
※私はマクロの知識が乏しい&Excelスキルの低い同僚にも使ってもらうため、マクロは使いたくありません。
※のちのち数式が崩れたときにも修復が容易なように、シンプルな数式だとありがたいです。
※条件付き書式以外の方法で、上記が解決できるならそれも教えてください。



ご教授ください。よろしくお願いします。

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見...続きを読む

Aベストアンサー

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セルのフィルハンドルでAI列までコピーしておきます。
これで「年」・「月」を変更すればちゃんと大の月・小の月の対応ができます。

後は条件付書式で可能です。
Excel2003の場合
色を付けたいセル(E5セル以降)をすべて範囲指定
書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=OR(AND(E$3<>"",E$3=$B5),AND(E$3<>"",E$3=$D5))
として → 書式 → パターンから「赤」を選択

次に条件付書式 → 「追加」 → 上記と同様に数式欄に
=AND(E$3<>"",E$3>=$B5,E$3<=$D5)
として → ・・・ → パターンから「黄色」を選択
これで↓の画像のような感じになります。

※ Excel2007以降ですと、条件付書式 → 「数式を使用して・・・」という項目になると思います。
数式欄は同じ数式にします。

※ 条件が重複する場合は最初の条件付書式が優先されますので、
「受注日」・「納品日」の条件付書式を条件1にします。
Excel2007以降の場合は条件付書式の項目で上の行に表示されている方が優先されますので、
右側の▲▼で優先順位は自由に変更できます。

参考になりますかね?m(_ _)m

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セ...続きを読む

Q有無、要否、賛否、是非、可否、当否…これらの言葉について

<A>
有無=あるかないか
要否=必要か否か
賛否=賛成と反対
是非=よいことと悪いこと
可否=よいことと悪いこと
当否=正しいか正しくないか。適切かどうか。


1.上記Aのような種類の言葉について、もっと知りたいので
他に何かあれば教えて下さい。

2.Aのような種類の言葉の事を何と呼ぶんでしょうか??

3.Aのような言葉を、どういう風に使えばいいのですか?
例文を示して頂けないでしょうか。

4.「是非」「可否」「当否」の意味は、全部同じですか?
違うとすれば、どのように違うのでしょうか?

Aベストアンサー

使用例

要否=要否を問う

賛否=賛否両論、賛否を問う
是非=是非(良し悪し)を論ずる。 副詞としての用法、是非参加ください。
可否= 可否(良し悪し)を論ずる。可否(賛否)を問う。
当否=ことの当否(よしあし、あたりはずれ)は別として、

是非と可否は同じ意味です。
当否も上の二つと同じ意味があるものの、それが当てはまっているかどうかという意味もあるので全く同じようには使えないでしょう。
二文字で相反する意味を表す漢語独特の表現法ですが、特に名前があるかどうかわかりません。類語として、否応(いやおう)があります。意味は断ることと承知すること。使用例、否応なしに買わされた(無理やりに買わされた)

QExcelで作った表をジャストでA4紙で印刷したい

Excelで小さめの表(A4の3分の1程度)を作ったのですが、これをA4サイズジャストに拡大してプリントアウトしたいのです。(わかりにくい説明ですいません)

こういう場合、印刷設定で地道に「拡大○%」で合わせていくしかないのでしょうか?

よろしくお願いします。

Aベストアンサー

ファイル/ページ設定/拡大縮小印刷/で、横1×縦1ページに印刷のボタンをクリックします。
これで、A4に強制的に1ページに収まります。
あとは、余白で大きさを調整します。
(勿論用紙サイズはA4選択が条件ですが)


人気Q&Aランキング