dポイントプレゼントキャンペーン実施中!

エクセルで商品管理をするためのマッピング図の様なものを作成しようと思っているのですが、
今は数あるフロアうちの1フロアずつごとにカウントA関数で数を拾って50+50+50=150
のような感じで在庫の総数をカウントしているのですが、業務の都合上、商品番号30番の商品を部品A部品Bに分けてAフロアとBフロアに分けて置かないといけなくなることがあります。
その場合は両フロア共に30番という番号を記載するため、本来は在庫数150のところがマッピング表図のカウント上は151個在庫があることになります。
「同じ数字があった場合は1個とカウントする。」みたいな条件付きの関数を教えていただきたく書き込みさせていただきました。
関数詳しい方よろしくお願いいたします。

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

  • 説明不足でした申し訳ありません。
    商品番号はAB123やCD456の様にアルファベッドと数値が混ざったもので、
    数値だけではありません。
    また重複も5個までは無いと思いますが、2個だけではなく3~4個ある場合も今後出てきそうです。
    お詫びして訂正いたします。

      補足日時:2016/11/19 18:21

A 回答 (2件)

マルチポストされた他の質問は締め切られたようですが、こちらは募集中だったので、回答させていただきました。

マクロ(VBA)であれば、こんな感じです。
ユーザ定義関数で実装していますので、標準の関数と同じような使い方ができます。

下記のユーザ定義関数(CountUnique)を標準モジュールに張り付けた後、シートに次の数式を設定してください。

=CountUnique(Sheet1!A1:B10,Sheet2!A1:B10,Sheet3!A1:B10)

※Sheet1!A1:B10はカウントするフロアの範囲です。とりあえず、Sheet1~3までの例としていますが、いくつでも書けます。

【ユーザ定義関数(CountUnique)】
Function CountUnique(ParamArray a() As Variant) As Variant
Dim dic As Object
Dim i As Long
Dim r As Variant
Set dic = CreateObject("Scripting.Dictionary")
For i = LBound(a) To UBound(a)
For Each r In a(i)
If r.Value <> "" Then dic.Item(r.Value) = r.Value
Next r
Next i
CountUnique = dic.Count
End Function
    • good
    • 1
この回答へのお礼

ありがとうございました。
使ってみます(^^♪

お礼日時:2016/11/27 01:20

商品番号は数値 かつ すべてのフロア合わせて重複が2個までという条件付きでなら


=COUNT(MODE.MULT(A2:D5,F2:G5,I2:J5))
「エクセル関数に関しまして」の回答画像1
    • good
    • 1
この回答へのお礼

説明不足で申し訳ありません。
参考にさせていただきます。
ありがとうございました。

お礼日時:2016/11/19 18:23

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