Excel。動画で紹介。商品ごとに直近で納品した日を知りたい
<Youtube>
最新の納品日ってどう求めたらいい。
しかも、商品別…。
商品を仕入れたときなど、この商品はいったい、いつ納品したのか。
直近の納品日は、いつなのかを知りたいとき、
どのようにしたら、手早く求めることができるのでしょうか。
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
最新の納品日ってどう求めたらいい。
しかも、商品別…。
商品を仕入れたときなど、この商品はいったい、いつ納品したのか。
直近の納品日は、いつなのかを知りたいとき、
どのようにしたら、手早く求めることができるのでしょうか。
2列で1組になっている表があります。
わかりにくいので、次のように塗りつぶしをしたいのですが、どのようにしたら、手早く設定することができるのでしょうか。
このような場合、条件付き書式をつかうことで解決できます。
ただし、どのような条件式を設定したらいいのかが、ポイントになります。
そこで、列番号をつかうことで、対応することができます。
列番号を求めるのは、COLUMN関数です。
では、8行目にCOLUMN関数をつかって列番号を求めてみます。
=COLUMN()
オートフィルで数式をコピーしています。
これで、列番号を求めることができました。
求めた値を4で除算して、その余りを求めてみます。
余りを求めるのはMOD関数です。
9行目に
=MOD(B8,4)
というMOD関数の数式をつくり、オートフィルで数式をコピーしてみましょう。
これで、0,1,2,3 という余りを求めることができました。
よくみてみると、0,1 と 2,3 がペアになっていることがわかります。
MOD関数の値が2より小さければという条件にすることで、2列1組で塗りつぶすことができそうです。
改めて、B1:I6を範囲選択します。
ホームタブの条件付き書式にある、「新しいルール」をクリックします。
新しい書式ルールダイアログボックスが表示されます。
条件式のボックスには、
=mod(column(),4)<2
2より小さいとすることで、余りが0,1の組を対象として塗りつぶす条件式にしました。
あとは、書式ボタンをクリックして、塗りつぶしたい色を選択しましょう。
これで完成です。
MODE.MULT関数
読み方: モード・マルチ
分類: 統計
MODE.MULT(数値1,[数値2],…)
複数の最頻値を算出します
Facebookページに書いた、Excelの豆知識(Trivia)です。
5月4日
Excel。
Alt+Shift +↑
テキストボックス内:行を上に移動する
5月5日
Excel。
Alt+Shift +→
グループ化
5月6日
Excel。
Alt+Shift +→
テキストボックス内:インデント(字下げ)する
5月7日
Excel。
Alt+Shift +↓
テキストボックス内:行を下に移動する
5月8日
Excel。
Alt+Shift +←
グループ化を解除
5月9日
Excel。
Alt+Shift +←
テキストボックス内:インデント(字下げ)を解除する
5月10日
Excel。
F1
ヘルプを表示します。
Excelには、様々な関数が用意されていますが、苦手というか、出来ないものがあります。
その中の一つに、セルが塗りつぶしされている件数を求めるというのがあります。
次の表を用意しました。
よく、数値を入力したり、文字を入力したりして、入力した文字が非表示になるようにして、その文字を数えるという方法もありますが、今回は、全くの空白セルで、塗りつぶしだけされています。
Excelの関数にセルの塗りつぶしを数える関数は、現時点では、ありません。
この程度の量でしたら、視認することもできますが、量が増えたらお手上げです。
これは、Excel VBAで対応することにしました。
では、次のようなプログラム文をつくってみました。
Sub 色数える()
Dim iro As Long
Dim hani As Range
iro = 0
For Each hani In Range("b2:d5")
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
Next
Range("b7") = iro
End Sub
まずは実行してみます。
では、プログラム文を確認してみましょう。
For Each hani In Range("b2:d5")
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
Next
変数宣言ブロックはさておき、メインのところをみてみます。
For Each ~ Next文は、繰り返し処理をしています。
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
もし、範囲選択した箇所のセルの色(hani.Interior.Color)が、16777215 でなかったら(<>)
iroに+1します。
という意味です。
16777215の意味ですが、色は、RGBで設定されています。
最大値は白でFF FF FFという16進数で設定されています。
このFF FF FF を10進数に変換すると、16777215です。
つまり16777215は、白なので、白以外ならiroという変数を+1させています。
あとは、
Range("b7") = iro
と設定して、B7に結果を表示するようにしています。
これで、塗りつぶされているセルの件数を求めることができました。
ただし、このプログラム文は、セルが塗りつぶされているか、そうでないかの判断しかできません。
たとえば、赤色は何件で、緑色は何件というプログラム文ではありませんので、ご注意ください。
ExcelのVLOOKUP関数。
数式を横方向にコピーすると、引数の3番目の「列番号」が増えてくれないので、コピーした後に、列番号をワザワザ修正しないといけないわけです。
いわゆる「VLOOKUP関数の列番号問題」
面倒なんですね。
そこで、
これをどのようにして解決すればいいのか、その一例を紹介しております。