会社の賞与計算をエクセルで行いたいのですが、級によって加算率が異なるので、うまく計算式が作れません。

(1)一律部分
 給与月額+扶養手当+((給与月額+扶養手当)×12%)
(2)職務加算部分
 (給与月額+(給与月額×12%))×加算部分
                  10、9級 20%
                  8、7級  15%
                  6級   10%
                  5、4級  5%
(3)管理職手当部分
 給与月額×加算部分
      10、9級 20%
      8、7級 15%
(4) (1)~(3)を足したものに支給率5.25をかけます。

仮に、A列に級、B列に給料月額、C列に扶養手当が入っているとして、D列に計算結果を表示するとなると、どのような計算式になるのでしょうか?
表を作ってそれにバッテングさせた方がいいのか、本を見ても解決方法が見つかりません。どなたかいい方法をご存知でしたら、教えてください!!

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

A 回答 (9件)

> PS.


> trytrytryさん
> =CHOOSE()は問題ないと思いますが・・・
> 元の式の要素が少ないような?
おぉ!?確かに...(1)と(2)の計算がくっついてますね。(@.@;
=((B1+C1+((B1+C1)*0.12))+((B1+(B1*0.12))*CHOOSE(A1,,,,0.05,0.05,0.1,0.15,0.15,0.2,0.2))+(B1*CHOOSE(A1,,,,,,,0.15,0.15,0.2,0.2)))*5.25
とりあえず修正するとこんなかな?合ってます?
計算ごとにかっこで括ってはみましたが...
    • good
    • 0

みなさん こんばんは



私のレスでは補足要求が無かったのでホッとしております(^^;
で興味があったので 級を数式だけで率に変換する 方法を

(2)の率条件
 ● =((CEILING(A1+2,2)-(A1=5)*2)-4)*(A1>3)/40
A1
10→0.2
9→0.2
8→0.15
7→0.15
6→0.1
5→0.05
4→0.05
3以降全て0

数式に当てはめると
 =B1+C1+(B1+C1)*●

(3)の率条件
 ■ =((CEILING(A1+2,2)-(A1=5)*2)-4)*(A1>6)/40
A1
10→0.2
9→0.2
8→0.15
7→0.15
6以降全て0

数式に当てはめると
 =(B1*1.12)*■
---------------------
PS.
trytrytryさん
=CHOOSE()は問題ないと思いますが・・・
元の式の要素が少ないような?
    • good
    • 0

> 実際に入力してみたのですが、何がいけないのか計算が合わないのです。


> CHOOSE(A1,,,,0.05,0.05,0.1,0.15,0.15,0.2,0.2)のA1からの
> 「てんてんてん」もちゃんと数えて入力してみたのですが・・・。
計算が合わない理由はファイルを見てみないとなんともいえませんが、
適当な数値(例:給与月額=150,000、扶養手当=30,000、級=7等)
を入れたとき、予定の数値(金額)とCHOOSEを使った数値(金額)が
それぞれいくつになるかを、例のような入力値と一緒に掲載していただければ
何かわかるかもしれません。

> ところで、この最初の「てんてん」は、「加算がない級は省略」
> という意味なのでしょうか?
まさに想像通りです、1~3級はありえない?為、省略しています。
    • good
    • 0

>IF(A1>0.1,B1*A1,0)というのは、どのような計算をしているのでしょうか?


>IF関数は、参考書を読んでも良く分からなくて・・・。
>
例えば、
IF(A=1,B,C)
の場合、
A=1の条件が成り立つと"B",成り立たないと"C"の値が返されます。

IF(A1>0.1,B1*A1,0)
の場合は、
A1の値が0.1を越えていた場合、"B1*A1"の値になり、
A1の値が0.1以下の場合は"0"になります。

リンクの件すみません、直接リンクするとダウンロード不可でした。
新しくIEの画面を開いて、
http://www.geocities.com/t_koba/test.zip
をアドレスの所に張り付けてみてください。
    • good
    • 0

質問がよくまとまっているので、質問をメモ帳に貼り付けて、ユーザー定義関数を作ってみました。


1画面で確認できる、レートの修正が容易、給与規定の変更への対応が容易等が利点でしょうか。端数処理はしていません。重要な計算と思いますし、こういう対応方法もあるということで参考に投稿します。

質問内容がほとんど回答になっていることを表現したかったのですが、伝わりましたか?質問と回答を対比してもらえば、チョッと違うのはSelect Case だけ?!

D2に『=賞与金額(A2,B2,C2)』のようにして使います。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、
挿入→標準モジュールで標準モジュールを挿入し貼り付けます。

Public Function 賞与金額(級 As Integer, 給与月額 As Long, 扶養手当 As Long)
  Dim 一律部分, 職務加算部分, 管理職手当部分 As Long
  Dim 職務加算割合, 管理職手当加算割合 As Integer
  Const 支給率 = 5.25

  '一律部分
    一律部分 = 給与月額 + 扶養手当 + ((給与月額 + 扶養手当) * 0.12)

  '職務加算部分
    Select Case 級
      Case 10, 9: 職務加算割合 = 20
      Case 8, 7: 職務加算割合 = 15
      Case 6: 職務加算割合 = 10
      Case 5, 4: 職務加算割合 = 5
      Case Else: 職務加算割合 = 0
    End Select
    職務加算部分 = (給与月額 + (給与月額 * 0.12)) * 職務加算割合 / 100

  '管理職手当部分
    Select Case 級
      Case 10, 9: 管理職手当加算割合 = 20
      Case 8, 7: 管理職手当加算割合 = 15
      Case Else: 管理職手当加算割合 = 0
    End Select
    管理職手当部分 = 給与月額 * 管理職手当加算割合 / 100

  '賞与金額
    賞与金額 = (一律部分 + 職務加算部分 + 管理職手当部分) * 支給率
End Function
    • good
    • 0
この回答へのお礼

nisi6さま
お礼を申し上げるのが遅くなり申し訳ありません。
丁寧な計算式を教えていただきありがとうございます。
VBA!わたしにとっては、憧れの「頭上に輝く星」のような存在です。
「たぶんきっとわたしには無理~」と思って諦めていました。
今、一生懸命入力をしながら「こういうイミなのか~」と目から何枚もウロコが落ちております。
また、差し支えなかったらVBAについて質問させて頂いて宜しいでしょうか?
本当にありがとうございました。

拙いnatutidoriの質問に、こんなに沢山の方から回答を頂けて、ほんとうに嬉しいです。ありがとうございました。今後とも、疑問をぶらさげたnatutidoriを見かけたら、よろしくお願いいたします。

お礼日時:2001/09/05 22:46

こんばんは!



計算自体は単純に各項目順に計算すればよいし、かつ
端数処理をどの時点で行うか分らないので数式は記載し
ない方が誤解を招かずよいと考えます。

お困りなのは、(2)と(3)の級の条件によって率が
変わる部分の解消と考えていますからその箇所だけ記載
します。

(2)職務加算部分

 ・計算表に関係無い列又は別Sheetに以下を記載

1列目  2列目
[職務加算]
 0    0%
 4    5%
 5    5%
 6    10%
 7    15%
 8    15%
 9    20%
10    20%

 ・データ部分8行2列を選択
 ・メニューの挿入 名前 定義 (名前を付けます)
  今回は仮に 職務加算 とします。

(給与月額+(給与月額×12%))×加算部分 の式
   ↓
 =給与記載セル*1.12*LOOKUP(級記載セル,職務加算)

御指定の想定セルにあてはめると(2行目の場合)
 =B2*1.12*LOOKUP(A2,職務加算)

(3)管理職手当部分
 (2)と同様に 表を作り 名前を定義 仮に 管理職加算
1列目  2列目
[管理職加算]
 0    0%
 7    15%
 8    15%
 9    20%
10    20%

 給与月額×加算部分
   ↓
 =給与記載セル*LOOKUP(級記載セル,管理職加算)

 例記
=B2*LOOKUP(A2,管理職加算)

1行記入後 (2)(3)とも必要行まで複写すればOKです。

試して見て下さい!
    • good
    • 0
この回答へのお礼

comvさま
連絡を差し上げるのが遅くなって申し訳ありません。
端数処理の問題などちきんと記入するべきだったのですね・・・。
似たような質問がないか、「教えてGoo」をあちこち探したところ、「質問のイミがわからん」と書かれていることが多かったので、「なるべく分かりやすく詳しく書かなければ!」という気持ちが空回りしておりました。
質問の仕方は本当に難しい・・・。
しかし!
拙いnatutidoriの質問の内容を汲み取っていただき、かつ適切なアドバイスをありがとうございました。ちゃんと計算できました。どうもありがとうございました。
今後とも、「教えてGoo」で疑問の海で溺れているnatutidoriを見かけたら、よろしくお願いします。

お礼日時:2001/09/05 22:30

ども



試しに式を書いてみたらこんなのが出来ました。
=(B1+C1+((B1+C1)*0.12*CHOOSE(A1,,,,0.05,0.05,0.1,0.15,0.15,0.2,0.2))+(B1*CHOOSE(A1,,,,,,,0.15,0.15,0.2,0.2)))*5.25

CHOOSE関数はインデックスを使ってN番目の値を返します。
CHOOSE(インデックス,値1,値2,値3,,,)
A1に"8"が入力されていて、=CHOOSE(A1,あ,い,う,え,お,か,き,く,け,こ)
と言った式の場合は8番目の引数の"く"が返ります。

現実問題として、このような式にはせずに、
参照用の列なりシートなりを作った方が良いです。
上記の式は、どうしてもそういった領域を作る事が出来ないとき
参考にしてください。
ひょっとしたらもっと効率の良い式があるかもしれませんが...

あとは、マクロで作るかですね。
    • good
    • 0
この回答へのお礼

trytrytryさま
お返事ありがとうございました。
すぐに連絡を差し上げず申し訳ありませんでした。
CHOOSE関数というのは参考書で見たことがありましたが、使ったことがありませんでした。便利そうですね。
実際に入力してみたのですが、何がいけないのか計算が合わないのです。
CHOOSE(A1,,,,0.05,0.05,0.1,0.15,0.15,0.2,0.2)のA1からの「てんてんてん」もちゃんと数えて入力してみたのですが・・・。
ところで、この最初の「てんてん」は、「加算がない級は省略」という意味なのでしょうか?
もし、よろしかったらもう少しこの関数について教えてください。

お礼日時:2001/09/05 22:10

参照についてうまく説明出来ないので作って見ました。


参照にLOOKUPを使っていますが、他にもいろいろあります。

参考URL:http://www.geocities.com/t_koba/test.zip
    • good
    • 0
この回答へのお礼

koba004さま
2通もお返事いただいて、ありがとうございました。
このアドレス先なのですが、英語のヤフーだったのです。
英語は・・・ごめんなさい判読できません。
もし、違う場合は再度教えていただいて宜しいでしょうか?
よろしくお願いします。

お礼日時:2001/09/05 21:36

素直に計算式を入れたら...


=(B1+C1+((B1+C1)*0.12)+(B1+(B1*0.12))*A1+IF(A1>0.1,B1*A1,0))*5.25

でしょうか?

A列には率をいれていますが、
A列を級で記述したい場合はもう一列作って、
率を参照させるのが良いと思います。
支離滅裂ですみません。うまく説明出来ない...
    • good
    • 0
この回答へのお礼

koba004さま
お返事ありがとうございました。
すぐにご連絡したかったのですが・・・遅くなって申し訳ありません。
トライしてみたのですが、すこし金額が合わないようです。
IF(A1>0.1,B1*A1,0)というのは、どのような計算をしているのでしょうか?
IF関数は、参考書を読んでも良く分からなくて・・・。
でも、IF関数を上手に組み合わせることが出来れば、
いろいろな条件で計算させることができるんですよね。
もし、よろしければもう少し、IF関数についてお教え頂けたら嬉しいです。
どうぞよろしくお願いします。

お礼日時:2001/09/05 21:28

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

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

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

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q列×列を列ごとに示したいです。

エクセル表計算についての質問です。困っているのでよろしくお願いいたします。

A B C

1 1 2
2 3 4
3 5 6
4 7 8

A×Bの結果をCに示したいんですがどうすればよいでしょうか??(c1に1×2=2,c2に3×4=12、c3に30、C4に56・・・と言う感じです。)

Aベストアンサー

C1のセルに、=A1*B1と入力したあと、セルの罫線部分の右下にポイントを当てて(表示が変わる部分)、下に向かってドラッグすればOKです。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

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

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Q【EXCEL】条件付き書式、A列、C列、D列、E列が同じ値の時にB列の背景色を変えたい

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青になると思うのですが実際の結果は画像の通りです。

先の話の通りA列、C列、D列、E列の値が同じ時だけ
B列のセルの背景を青にしたい場合はどうい数式になるのでしょうか?

すいませんが、詳しい方、数式(関数?)で説明できる方よろしくお願い致します。

追記
可能でしたらA列、C列、D列、E列が空白の時はB列の背景色をなしにしたいと思っております。
→A列、C列、D列、E列に値があって、かつ同じ値の場合のみB列の背景を青にしたいです。

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青にな...続きを読む

Aベストアンサー

AND関数を使えば判定ができるのでは?
 =AND(A2<>"",A2=C2,C2=D2,D2=E2)

A列には常に判定する数値が入っているなら「A2<>""」は不要です。

参考サイト
http://www.relief.jp/itnote/archives/003940.php

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qエクセル 4列2列×2セットの同じ並び方

2箇所の商品在庫数の合計を出すのために、
横を同じ品番に揃えたいのですが、
以下の◆並び方前から◆並び替え後に並びかえる方法はありませんか?
宜しくお願いいたします。

◆並び方前

倉庫1 品番 倉庫1在庫 倉庫2品番 倉庫2在庫
pin6 1 pin9 1
pin7 1 pin11 2
pin8 1 pin13 1
pin9 2 pin14 1
pin10 1 pin15 1
pin11 1 pin18 0
pin12 1 pin19 1
pin13 1
pin14 1
pin15 1
pin16 1
pin17 1
pin18 1
pin19 1

◆並び方後

倉庫1 品番 倉庫1在庫 倉庫2品番 倉庫2在庫
pin6 1
pin7 1
pin8 1
pin9 1 pin9 1
pin10 1
pin11 1 pin11 2
pin12 1
pin13 1 pin13 1
pin14 1 pin14 1
pin15 1 pin15 1
pin16 1
pin17 1
pin18 1 pin18 0
pin19 1 pin19 1

2箇所の商品在庫数の合計を出すのために、
横を同じ品番に揃えたいのですが、
以下の◆並び方前から◆並び替え後に並びかえる方法はありませんか?
宜しくお願いいたします。

◆並び方前

倉庫1 品番 倉庫1在庫 倉庫2品番 倉庫2在庫
pin6 1 pin9 1
pin7 1 pin11 2
pin8 1 pin13 1
pin9 2 pin14 1
pin10 1 pin15 1
pin11 1 pin18 0
pin12 1 pin19 1
pin13 1
pin14 1
pin15 1
pin16 1
pin17 1
pin18 1
pin19 1

◆並び方後

倉庫1 品番 倉庫1在庫 倉庫2品番 倉庫2在庫
pin6 1...続きを読む

Aベストアンサー

No.1・2です。

お礼欄の表を拝見するとC列に重複品番が出現していますね?
これも考慮する必要があるのですね?

↓のコードに変更してみてください。

Sub Sample2()
Dim i As Long, lastRow As Long, c As Range
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
Set c = Range("A:A").Find(what:=Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(c.Row, "E") = Cells(i, "C")
End If
Next i
lastRow = Cells(Rows.Count, "E").End(xlUp).Row
With Range(Cells(2, "F"), Cells(lastRow, "F"))
.Formula = "=IF(E2="""","""",SUMIF(C:C,E2,D:D))"
.Value = .Value
End With
Range(Cells(2, "E"), Cells(lastRow, "F")).Cut Range("C2")
Range(Cells(2, "C"), Cells(lastRow, "C")).SpecialCells(xlCellTypeConstants).Copy Range("E2")
lastRow = Cells(Rows.Count, "E").End(xlUp).Row
With Range(Cells(2, "F"), Cells(lastRow, "F"))
.Formula = "=SUMIF(C:C,E2,D:D)-SUMIF(A:A,E2,B:B)"
.Value = .Value
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

マクロを実行後は↓の画像のような感じになりますが、
これで良いのでしょうか?m(_ _)m

No.1・2です。

お礼欄の表を拝見するとC列に重複品番が出現していますね?
これも考慮する必要があるのですね?

↓のコードに変更してみてください。

Sub Sample2()
Dim i As Long, lastRow As Long, c As Range
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
Set c = Range("A:A").Find(what:=Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(c.Row, "E") = Cells(i, "C")
...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Qエクセルのセルの件、列×行=20cm×20cmに印刷したい

WinXP、EXCEL2003です。
エクセルで、罫線を作成して、列と行の長さをそれぞれ20cmにして、20cm×20cmの正方形を印刷するには、列と行のポイントをどのように設定するといいのでしょうか?計算しても、中途半端な数値になるので、困っています。よろしくお願いします。

Aベストアンサー

Excel定規http://www.geocities.co.jp/SiliconValley-PaloAlto/1200/html/jougi.htm

Excel ミリ単位ものさしマクロhttp://hp.vector.co.jp/authors/VA016119/sizemm.html

などがあります。


人気Q&Aランキング

おすすめ情報