グッドデザイン賞を受賞したウォーターサーバー >>

倉庫業で入庫事例として、大根385ケースを入庫する場合、トラックから荷物をパレットに移して倉庫に入庫します。
その際に各パレットにA4縦用紙上から①入庫月日、②入庫者名、③生産地名、④等級、⑤総数、⑥積んでいる数、⑤入庫ロットナンバーを印刷して貼り付けています。
なお、パレットは「平パレット」と「荷崩れ防止の枠が付いたパレット(以下“枠パレット”)」の2種類があり、倉庫内に4段重ねして保管しています。下2段は枠パレット、3・4段は平パレットです。
大根385ケースは、平パレット1枚に40ケース、枠パレット1枚に35ケースをぞれぞれ積んでいます。
教えていただきたいのは、Excelに①~⑤のデータ及び平、枠パレットの1枚あたりの積む数を予め入力することにより自動計算されて印刷することができれば事務処理の省力化が図られる状況にありますのでExcelの関数等を具体的に教えてください。
これが実現すると、プリンターから大根40ケース積み6枚、35ケース積み4枚、端数5ケース積み1枚が印刷となります。
よろしくお願いします。

質問者からの補足コメント

  • 貼っている用紙はこの様なイメージです。

    「倉庫業(冷蔵庫業)の荷物1パレット毎の貼」の補足画像1
      補足日時:2019/04/23 11:36

A 回答 (6件)

質問者さんって、VBAが出来ちゃう人ですか?そうであれば、この案はとっても幼稚なので、読み捨てて下さい。



【使い方】
添付画像の太枠ひとつが用紙1枚分になるので、必要な範囲を選択して印刷します。必要な範囲は、数式で求めている積数がマイナスになる直前までです。

【作り方】
青字部分が手入力するところ。赤字部分には次の数式が入っています。
【A11セル】=HLOOKUP(A10,{"枠","平";35,40},2,FALSE)
【A12セル】=A5-A11
【B8セル】=$B$1
【B9~12、B14セル】B8セルの式と同じ考え方なので説明を省略します
【B13セル】=IF(A12>=0,A11,A11+A12)

上記の設定が出来たら、8~14行目を1セットとして、必要な分だけ下にオートフィルします。ちなみに、A10セルに「枠」の文字が入っていますが、これを「枠」「枠」「平」「平」の繰り返しになるように書き換えて下さい。なお、改ページの設定も忘れずに・・・。
「倉庫業(冷蔵庫業)の荷物1パレット毎の貼」の回答画像6
    • good
    • 0
この回答へのお礼

VBA興味を持っている程度ですので、ありがたいです。
ご指導に感謝申し上げます。

お礼日時:2019/05/08 17:51

このような場合、印刷用のシートと元データのシートを分けておいた方が簡単です。


添付図の左側を参照ください。
シート名:元データに必要な情報を入力しておきます。(青色の部分です)
(黄色の部分はマクロで自動設定する予定の箇所です)
ソート名:印刷は印刷用のシートでデータは元データのシートを参照するようにしておきます。
例として C3へ 
=元データ!$B$1
と設定しておきます。(19.4.22が表示される)
フォントの種類、サイズはあなたが望んだものを設定しておきます。
上記の前提で、マクロを実行し、
元データのB6を逐次変えて、印刷するようにします。
印刷のシートはC13が逐次変わります。

このようにすれば、マクロでの印刷が可能になります。
その前提での質問になりますが、幾つか不明点がありますので補足要求します。
①印刷時、平パレットか枠パレットかの区別がされてないようですが、それで良いのでしょうか。
今回のれいであれば、ケース数が40なら平パレット、35なら枠パレットであることは判りますが、5の場合は
印刷された紙を見ただけではどちらになるかわかりません。
(端数は必ず平パレットへ収納する規則ならそれでかまいません)
②No4の方も言われてますが、端数分をどのパレットに収納するのかの規則が不明です。
これが、明確にならないと、マクロが作成できません。
あなたが提示された例をみると、「端数分は全て平パレットへ収納する」という規則に見えますが、それで良いのでしょうか。
例えば、149ケースの場合
枠パレット数=2 (35×2=70)
平パレット数=1 (40×1)
平パレット端数分=1 (39)
のようになるのが普通かとおもいますが、そうではないのでしょうか。
あなたが提示された規則なら、
平パレット数=3 (40×3=120)
平パレット端数分=1(29) になりますが、それで良いのでしょうか。
「倉庫業(冷蔵庫業)の荷物1パレット毎の貼」の回答画像5
    • good
    • 0
この回答へのお礼

ご丁寧にエクセル画像まで添付いただき感謝いたします。
お礼が遅くなりましたことをお詫び申し上げます。

お礼日時:2019/05/08 17:50

こんにちは



何が欲しいのかはデカデカと貼ってあるのでわかりますが、どのようにして、欲しいのかが不明ですね。

例えば、
>大根40ケース積み6枚、35ケース積み4枚、端数5ケース積み1枚が印刷となります。
どうやって振り分けているのか?
「40ケース×7 + 35ケース×3」あるいは「35ケース×11」ではなぜ悪いのか?
など、方法に関して不明な点が多いので、具体的な回答になりにくいのではと感じます。
    • good
    • 1
この回答へのお礼

質問の方法、説明の在り方を考えます。
ありがとうございます。

お礼日時:2019/05/08 17:49

度々です。


  
印刷枚数はVBAでセル値から引いてくれば可能になりそうです。
これ以上は検索して下さい。
今の延長線上で可能になると思います。
    • good
    • 0
この回答へのお礼

度重ねてのご指導に感謝申し上げます。

お礼日時:2019/05/08 17:52

#1です。


ですから、私が書いたのは考え方です。
   
計算式で「山」が2、平パレットが0だから提示された用紙を2×2で4枚印刷すればいいでしょう。
その後、40を35に直して(別の所から取り込んで)「山」が2、枠パレットが2だから2×2+2で6枚印刷。
    
この計算自体、計算式がなければ大変でしょう。
私の回答はその部分なのです。
これはすでに出来ていればごめんなさいです。
  
必要枚数の印刷までは無理。
VBAなら可能でしょうけど、私は知りません。
    • good
    • 0
この回答へのお礼

再びありがとうございます。
ご指導を参考にしながら確認致します。

お礼日時:2019/04/23 12:53

基本的な部分だけ・・・


多分以下で・・・ダメだったら、ごめんなさいです。
多分計算は合っているはず・・・です。
  
図の通りに作成、山端数は不要ですが計算上。
尚、この結果を印刷用紙に取り込んで下さい。
   
端数計算のみなので、山は以下(これは簡単に計算出来ますね)
山というのは
枠パレット2(70ケース)
平パレット2(80ケース)

計算式は以下。
  
B2=INT(A2/150)
C2=A2-(B2*150)
D2=INT(C2/35)
E2=INT((C2-(35*D2))/40)
F2=C2-(D2*35+E2*40)
「倉庫業(冷蔵庫業)の荷物1パレット毎の貼」の回答画像1
    • good
    • 0
この回答へのお礼

早速お寄せいただきありがとうございます。
これから、教えていただきたい目的となるか見てみます。
なお、最終的にA4用紙に細くでアップした様式が自動で荷物を積んだパレット枚数分印刷となることを考えております。
引き続きご指導お願いします。

お礼日時:2019/04/23 11:41

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

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

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

QExcelで「令和」と表示されるのは5月1日にならないとだめですか?

「日本の新元号に関する Office の更新プログラム」というページ(下記)で、
「Windows と Office の更新プログラムを適用済みの場合でも、Windows 上で実行されている Office 製品は 2019 年 5 月 1 日に新元号が開始されるまで、新元号を表示しませんのでご注意ください。」
と書かれています。
https://support.microsoft.com/ja-jp/help/4478844/office-updates-for-new-japanese-era

今月4月中に、Excelのセルに来月5月以降の年月日を入力した場合に、自動で「令和」という元号を表示させることはできないのでしょうか。

もし、できるということであれば、「2019 年 5 月 1 日に新元号が開始されるまで、新元号を表示しません」とはどのような意味なのでしょうか。

Aベストアンサー

>こちらでは、「4月17日以降にOfficeも更新されれば「令和元年」と表示されると思います」と書かれているんですが

その方は、Microsoftの方ではないですし個人の予想ですよね?公式が出ているのにそれを持ち出してどうするんですか?

5/1より前に新しい元号を表示したい場合は数式や表示形式で限定的に表示させる方法を色々な方が考え付いていますよ。
検索すればたくさん出てきます。

Qエクセル 印刷について。

教えてください。

エクセル2016で
①Sheet1のA1セルにMonday
②Sheet1のA2セルにTuesday
③Sheet1のA3セルにWednesday
④Sheet1のA4セルにThursday
⑤Sheet1のA5セルにFriday
⑥Sheet1のA6セルにSaturday
⑦Sheet1のA7セルにSunday
と入力しておいて
印刷時①~⑦を指定すると
Sheet2のA2セルにMonday
Sheet2のA2セルにTuesday
Sheet2のA2セルにWednesday
Sheet2のA2セルにThursday
Sheet2のA2セルにFriday
Sheet2のA2セルにSaturday
Sheet2のA2セルにSunday
と印刷されるようにしたいです。
印刷時③,⑤,⑦を指定すると
Sheet2のA2セルにWednesday
Sheet2のA2セルにFriday
Sheet2のA2セルにSunday
と印刷されるようにしたいです。

指定の数字はセルに入力でもポップアップ表示の画面でも構いません。

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

教えてください。

エクセル2016で
①Sheet1のA1セルにMonday
②Sheet1のA2セルにTuesday
③Sheet1のA3セルにWednesday
④Sheet1のA4セルにThursday
⑤Sheet1のA5セルにFriday
⑥Sheet1のA6セルにSaturday
⑦Sheet1のA7セルにSunday
と入力しておいて
印刷時①~⑦を指定すると
Sheet2のA2セルにMonday
Sheet2のA2セルにTuesday
Sheet2のA2セルにWednesday
Sheet2のA2セルにThursday
Sheet2のA2セルにFriday
Sheet2のA2セルにSaturday
Sheet2のA2セルにSunday
と印刷されるようにしたいです。
印刷時③,...続きを読む

Aベストアンサー

こんばんは!

>指定の数字はセルに入力でもポップアップ表示の画面でも構いません。

VBAでの一例です。
Sheet1のA1~A7セルの印刷したいセルを範囲指定し、マクロを実行する方法ではどうでしょうか?
(飛び飛びの場合はCtrlキーを押しながらセルを選択してみてください)
一例です。

Sub Sample1()
 Dim c As Range, wS As Worksheet
  Set wS = Worksheets("Sheet2")
   For Each c In Selection
    If Not Intersect(c, Range("A1:A7")) Is Nothing Then
     wS.Range("A2") = c
     wS.PrintPreview '//★//
    End If
   Next c
End Sub

※ 必ずSheet1のセル選択後マクロを実行してください(Sheet1がアクティブになっている状態で!)

※ 印刷プレビューでやめています。
すぐに印刷したい場合は「★」の行を
>wS.PrintOut

に変更してみてください。m(_ _)m

こんばんは!

>指定の数字はセルに入力でもポップアップ表示の画面でも構いません。

VBAでの一例です。
Sheet1のA1~A7セルの印刷したいセルを範囲指定し、マクロを実行する方法ではどうでしょうか?
(飛び飛びの場合はCtrlキーを押しながらセルを選択してみてください)
一例です。

Sub Sample1()
 Dim c As Range, wS As Worksheet
  Set wS = Worksheets("Sheet2")
   For Each c In Selection
    If Not Intersect(c, Range("A1:A7")) Is Nothing Then
     wS.Range("A2") = c
    ...続きを読む

Q日付の作成方法を教えて下さい。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
Next i

End Sub

やりたいこととしては、一行飛ばしに日付を加算させていくなのですが、上のコードだと4行目だけ変わって後は変わりません。
どうすれば63行目まで変えることが出来るのでしょうか?
ご教授宜しくお願い致します。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
N...続きを読む

Aベストアンサー

Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") - 1 + i / 2
Next i

End Sub

Qお世話になっております エクセルで有給の管理をしたいのですが 数式がわかりません。ご教示お願いします

お世話になっております

エクセルで有給の管理をしたいのですが
数式がわかりません。ご教示お願いします。
当社の場合、年休は
一日年休、時間年休、半日年休(1日の半分の年休)の三種類があります。
(8時間拘束です)

一日年休は時間に換算すると8時間
残日数と残時間を足してすべて時間に換算する、まではわかるのですが、頭を悩ませているのが、半休と時間年休の表示をわけることです。

<例>
年休残日数が16日と1時間あるとします。
そこで、半日年休を取ったとします。
16日+1時間を時間に換算すると129時間です
そこから半日と考えて4時間をマイナスすると125時間となりますが、これを下記の数式に入れると

=INT(125/8)&"日"&MOD(125,8)&"時間"

15日5時間となりますが、実際は15日と半日と1時間です。
4時間年休を取ったすればその場合は、残は15日5時間でOKです。

どういう計算式を入れればこのとおり表示できるでしょうか。

悩んで禿げそうです。
どなたかお知恵をお貸し願います。
よろしくお願いします

_______このように表示したい_____________

年月日|1日単位|半日単位|時間単位 残
2月5日   0    1    0   15日半日1時間
2月7日   0    0    4   14日半日5時間
2月8日   0    1    0   14日5時間

お世話になっております

エクセルで有給の管理をしたいのですが
数式がわかりません。ご教示お願いします。
当社の場合、年休は
一日年休、時間年休、半日年休(1日の半分の年休)の三種類があります。
(8時間拘束です)

一日年休は時間に換算すると8時間
残日数と残時間を足してすべて時間に換算する、まではわかるのですが、頭を悩ませているのが、半休と時間年休の表示をわけることです。

<例>
年休残日数が16日と1時間あるとします。
そこで、半日年休を取ったとします。
16日+1時間を時間に換算すると...続きを読む

Aベストアンサー

有給休暇の全てを時間単位で管理して、
残時間に対する最後の表示だけを、日+時間の表示にすればよいと思います。
日=残時間÷8の商、時間=その余り、で表せます。

年間有給時間=年間有給日数×8時間、として、
日休暇=8時間
半休=4時間(午前、午後とも)
時間給=時間に切り上げの時間数
これを消化ごとに減じていけばよい、と思います。

QIF関数とMODで、例えば入れた数値の倍数の時に◯が表示される……という数式を作りましたが、1.1の

IF関数とMODで、例えば入れた数値の倍数の時に◯が表示される……という数式を作りましたが、1.1の時に本当だったら1.1、2.2、3.3、4.4、5.5、6.6、7.7……で◯になるはずなのですが、10以下の数値を入れてみると、3.3、5.5、6.6、7.7、9.9は◯の表示がでてきません。
1.1、2.2、4.4、8.8しか◯が出ません。
どうしてでしょうか?

Aベストアンサー

幼稚な言い方だけど、Excel(に限らないので、PC全般的なことと理解してネ)は“小数点の計算には弱い”と理解しておきませう。
理屈っぽい人はフドーショースーテン(浮動小数点)問題などど言い始めますが・・・
それはさておき、対策を教えます。カンタンなことで、小数点抜きの整数に換算して、Excel に計算させることです。
貴方が提示した式(実はナッチョランでしたが)、を
=IF(MOD($A2*10,B$1*10)=0,"◯","")
に変更するだけで解決します。ゴチャゴチャ考えずに先ずは実行してみること!
どうなりましたか?

Q大きいポイント順にデータを抽出したい

いつもお世話になっております。

元データのポイントの高い順に抽出先のC列、D列へデータを抽出したいです。
VLOOKUPとLARGE関数を使用したのですがうまくいきません。

何卒、ご教授願います。

★元データ

A列:支店コード
B列:支店名 
C列:ポイント

A列 B列   C列
1  ①支店  5
6  ②支店  6
5  ④支店  10

★抽出先

A列:作業列(元データの支店コード)
B列:順位(1位~30位まで)
C列:支店
D列:ポイント

A列 B列 C列  D列
1  1  ④支店 10
2  2  ②支店 6
3  3  ①支店 5

Aベストアンサー

No.5です。

重複データがあり、その合計で降順に表示したい!というコトですね。

一つの数式で出来るかどうか判りませんが、
↓の画像のように作業用の列を2列設けるのが一番簡単だと思います。

作業列1のE2セルに
=IF(COUNTIF(B$2:B2,B2)=1,SUMIF(B:B,B2,C:C),"")

作業列2のF2セルに
=IF(E2="","",COUNTIF(E:E,">"&E2)+COUNTIF(E$2:E2,E2))

という数式を入れ下へずぃ~~~!っとフィル&コピーしておきます。

Sheet2のB2セルに
=IFERROR(INDEX(Sheet1!B:B,MATCH(ROW(A1),Sheet1!$F:$F,0)),"")

C2セルに
=IF(B2="","",SUMIF(Sheet1!B:B,B2,Sheet1!C:C))

という数式を入れフィルハンドルで下へコピー!

これで画像のような感じになります。

※ Sheet2のC2セルは色々やり方があると思います。
例えば
=IFERROR(INDEX(Sheet1!E:E,MATCH(B2,Sheet1!B:B,0)),"")

でも大丈夫だと思います。m(_ _)m

No.5です。

重複データがあり、その合計で降順に表示したい!というコトですね。

一つの数式で出来るかどうか判りませんが、
↓の画像のように作業用の列を2列設けるのが一番簡単だと思います。

作業列1のE2セルに
=IF(COUNTIF(B$2:B2,B2)=1,SUMIF(B:B,B2,C:C),"")

作業列2のF2セルに
=IF(E2="","",COUNTIF(E:E,">"&E2)+COUNTIF(E$2:E2,E2))

という数式を入れ下へずぃ~~~!っとフィル&コピーしておきます。

Sheet2のB2セルに
=IFERROR(INDEX(Sheet1!B:B,MATCH(ROW(A1),Sheet1!$F:$F,0)),"")

C2セルに
=I...続きを読む

Qマクロ無しで時間自動で記入をしていきたい

すごく贅沢な話なのですが・・・
マクロを使わず、通常のエクセルで時間を手入力でなく何かしらしたら(例:「1」と入力)自動で別セルに現在時刻ほ記載してくれる

マクロだと下記のような内容でやってます(一部)
Range("H3:K33").Select
Selection.Copy
Sheets("結果").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

マクロを使わずやれる方法はないでしょうか・・・

Aベストアンサー

論より 証拠、

作ってみました。


式、
=TEXT(IF(ISBLANK(B1),IF(ISBLANK(A10),B10,TODAY()),"此処が 変わります。"),"rr/mm/dd hh:mm")

ファイル、
https://1drv.ms/x/s!AjviygfJDgV_3GnS4Ko-q3mWU9fP

尚、
ファイルは 1度、
ローカルに 別名保存して、
其の保存ファイルを 扱うように、
してくださいね、

別名保存でないと、
意味が 無いですよ。


さすれば、
閲覧も、編集も、
叶うものと 思いますよ。

QExcel 別窓で開かなくなった エクセルで二つのデータを開くと 今までは自動的に別窓で開いてたのが

Excel 別窓で開かなくなった

エクセルで二つのデータを開くと
今までは自動的に別窓で開いてたのが
同じウインドウで開くようになってしまいました。

自動的に別窓で開くように設定する方法を教えてください。


きっかけは、一度エクセルのなかで
分割表示をしてしまった時だと思います。。

Aベストアンサー

別窓で開いていたとき、現時点(同じウィンドウで開く)、それぞれのエクセルのバージョンを教えてください。

基本的には、Excel 2010以前は同窓、Excel 2013以降は別窓、だと思います。


また、分割表示をしたくらいで、この設定が変わるとは思えないです。
そのときの手順を示していただきたいです。

Qエクセル リストと完全一致するセルに色をつける

シート1のA列とB列に
aaa ccc
bbb ggg
ccc kkk
ddd ooo
と言うリストがあって、A1〜A4はAチーム、B1〜B4まではBチームと名前を付けています
シート2にAチームのリスト4個が続いているものがあればセルを赤、Bチームのリスト4個が続いているものがあればセルを黄色に塗りたいです
AチームとBチームの中には同じ品番がある時もあります
条件付き書式で設定は出来るでしょうか?

Aベストアンサー

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル

 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4

 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5

 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

の4パターンについてそれぞれ調べれば良いだけ。

自分なら
 aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、

 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17

という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。

面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。

・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付け...続きを読む

Q【関数】複数条件に応じてポイントをつけたい

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル K5~K18:担当者ID
➁赤色セル K4:部門コード
※画像添付いたします。

ポイント付与条件別表
黄色セル E列:担当者ID ※上記①と紐づく
ピンクセル F列:担当者に紐づく主担当部門コード ※上記➁と紐づく
※補足へ画像添付いたします。

★条件★
・基本
O列
①「達成額/未達成額」が0以上なら降順に10Pからポイント付与
➁「達成額/未達成額」が0orマイナスならポイント付与せず
※ただし、マイナスでも実績があればポイント付与

上記、基本条件に加えて、下記条件も組み込みたいです。
①担当者ID+主担当部門コードが紐づけはO列に10PからポイントMAX付与
➁担当者ID+主担当部門コード以外だったら該当ポイントの1/2付与
かつ、「達成額/未達成額」が0orマイナスなら1/2のポイントの半分付与

何卒、よろしくお願いいたします。

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル...続きを読む

Aベストアンサー

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRANK.AVR関数を使います。)
*マイナスのポイントは排除したいので、MAX関数でゼロと比較して正の値のみを採択します

追加条件込みの方は、以下です。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0)*IF(VLOOKUP($K5,$E$3:$F$1000,2,FALSE)=$K$4,1,IF($O5>0,0.5,0.25)),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*担当IDから担当部門コードの検索にはVLOOK関数を使います。VLOOK関数が正常に動作するには、担当IDに漏れがない事と番号順に並んでいる事が必要ですので、これ前提で考えて下さい。
*追加条件に準じ、ポイントを1倍したり、0.5倍したり、0.25倍したり、しました。

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRAN...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング