アプリ版:「スタンプのみでお礼する」機能のリリースについて

A:ジャンル(01建築,02金融,03教育,04IT,05医療,06メディア,07人材派遣,,…)からプルダウンで選択。
B:エリア(01千代田区,02中央区,03港区,04中野区,05渋谷区,06新宿区,…)からプルダウンで選択。
C:営業担当(01Aさん,02Bさん,03Cさん,04Dさん,05Eさん)からプルダウンで選択。
※プルダウンは別シート管理で管理しています。

以上のエクセルを利用しています。

エクセル登録日 平成22年11月25日に、
A:05医療 → B:03港区 → C:01Aさん と選んだら、
D:顧客番号に自動で、「221125050301-1」となり、
その後-2、-3、という風に自動でナンバリングしたいのです。

ご教授のほどよろしくお願いいたします。

A 回答 (4件)

=TEXT($A2,"eemmdd")&MID($B2,4,2)&MID($C2,4,2)&MID($D2,4,2)&"-"&SUMPRODUCT(($A$2:$A2=$A2)*($B$2:$B2=$B2)*($C$2:$C2=$C2)*($D$2:$D2=$D2))



ナンバリングの桁数を設定するなら
=TEXT($A2,"eemmdd")&MID($B2,4,2)&MID($C2,4,2)&MID($D2,4,2)&"-"&TEXT(SUMPRODUCT(($A$2:$A2=$A2)*($B$2:$B2=$B2)*($C$2:$C2=$C2)*($D$2:$D2=$D2)),"00")

この回答への補足

いろいろ申し訳ございません。
エクセル素人、OKWAVE初質問にて、
何卒お許しくださいませ。

頂いた関数をいじってたら
できるようになりました!

ありがとうございました。

補足日時:2010/11/28 20:48
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2010/11/28 20:50

A1セルにエクセル登録日があり、


データが2行目から下方にあるとします。
D2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTA(A2:C2)<>3,"",TEXT(A$1,"eemd")&LEFT(A2,2)&LEFT(B2,2)&LEFT(C2,2)&"-"&ROW(A1))

-1、-2、-3などとしているのはどうしてそのようになるかを理解しないままに、単にデータが下の行になればということで式がなっています。

この回答への補足

いろいろ申し訳ございません。
エクセル素人、OKWAVE初質問にて、
何卒お許しくださいませ。

何とか解決できました。
ありがとうございました。

補足日時:2010/11/28 20:47
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2010/11/28 20:52

》 エクセル登録日 平成22年11月25日に、…と選んだら、…となり、


》 その後…という風に自動でナンバリングしたいのです

登録日は何処に入力するのですか?それとも入力しない?

この回答への補足

登録日も入力の必要があるんですね。

でもよく考えたら、
顧客番号がとても長くなすぎるので、
登録日を顧客番号に入れるのはやめます。

A:登録日
B:ジャンル
C:エリア
D:営業担当
のみにしたいと思います。

また、

最初の質問で、-1、-2、-3としたい件は、
同じ日に登録した顧客を分けたかったためですので
忘れて頂ければと思います。


最終的には、

A:05医療 → B:03港区 → C:01Aさん と選んだら、
D:顧客番号に自動で「050301-001」としたいです。

全く同じA、B、Cの場合も当然あるため、001から始まって。。。

なんだか自分でもよくわからなくなってきましたが、とにかく

「050301-001」を見れば、A,B、Cが分かる様にしたいです。

ご指導よろしくお願いいたします。

補足日時:2010/11/28 19:55
    • good
    • 0
この回答へのお礼

いろいろな方からもご指導いただき
何とかできるようになりました。

ありがとうございました。

お礼日時:2010/11/28 20:52

この質問は表現が不完全だ。


それは
日付をどういう風に入れようとしているのか明確にしてないからだ。
=TODAY()関数は、入力日が変わると日付が当日に変わってしまうから扱いにくいこと判りますか。
VBAなどならその点は心配ないのだが。
それで=TODATY()を使日付を入れるにしても、表のレイアウトなどをどうするのか。
D列なりに日付を毎行入れさせる手もあるが、毎行入れさせないとなると、どうするかな。日付の後戻りがないなら、MAXででもとるかな。
E2は =TEXT(MAX($D$2:D2),"eemmdd")&A2&B2&C2&"-" (連番部以外)
2010/11/29
0503012010/11/25221125050301-1221125050301-1
040302221125040302-2221125040302-2
050201221125050201-3221125050201-3
0503012010/11/28221128050301-1221128050301-1
040302221128040302-2221128040302-2
0502012010/12/1221201050201-1221201050201-1
連番にするため
F2に=COUNTIF($E$2:$E2,TEXT(MAX($D$2:D2),"eemmdd")&"*")
G2にE列とF列結合
=E2&F2
ーーー
VBAでは
A1に操作する日を都度入れて、シートを変えないで入力するとして
C列が変化するとき(最後にC列を入力するとして)をデータの決定として、J列に番号をセットするとして
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
r = Target.Row
n = WorksheetFunction.CountIf(Range("j2:j" & (r - 1)), Format(Cells(1, "A"), "eemmdd") & "*") + 1
c = "'" & Format(Cells(1, "A"), "eemmdd") & Cells(r, "A") & Cells(r, "B") & Cells(r, "C") & "-" & n
Cells(r, "J") = c
End If
End Sub
日付部分以外で日付と同じ文字列(例221130)が出てこないか心配だが、質問の場合のコード仕様が不明でなんともいえない。
2010/12/2 <--A1セル。各作業日で変わる。下記では4回変えた
050301221129050301-1
040302221129040302-2
050201221129050201-3
050301221130050301-1
040302221130040302-2
050203221130050203-3
050204221201050204-1
050202221201050202-2
050204221202050204-1
日付を後戻りさせて入力してもおかしくはならないはず。
このように難しい点のある質問だと思う。

この回答への補足

大変申し訳ございません。
エクセル素人、OKWAVE初質問にて、
何卒お許しくださいませ。

何とか解決できました。
ありがとうございました。

補足日時:2010/11/28 20:46
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2010/11/28 20:50

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