[[20220203174500]] 『文字データを取得と同時に敬称を付ける関数』(イチゴ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字データを取得と同時に敬称を付ける関数』(イチゴ)

お世話になります。

ご教示ください。

CLIENT Sheetと長3封筒Sheetとが有ります。
長3封筒 SheetのA1のセルに数字の「1や2や3や4や5」と入力すると
長3封筒 Sheet結合セル「G7」にCLIENT SheetのE列の後ろに敬称(御中・殿・様)
を付けた表示をしたいのです。


                 G7セル
長3封筒 SheetのA1「1」 → 個人名 様
長3封筒 SheetのA1「3」 → 会社名 御中
長3封筒 SheetのA1「5」 → 市長  殿

個人的に長3封筒 Sheet結合セル「G7」の関数を考えたのですが、

1.長3封筒 Sheetの空いているセル(仮にD9)に =IFERROR(VLOOKUP(A1,CLIENT!B:E,4,FALSE),"")

2.長3封筒 Sheet の「G7」 =IF(D9="","",IFS(COUNTIF(D9,"*会社*"),D9&"   御中",COUNTIF(D9,"*市長*"),D9&"  殿",TRUE,D9&"  様"))

と入れると敬称が表示できるのですが、2回になってしまいます。

「G7」セルに一つの関数としてまとめて表示できないでしょうか。

下記にCLIENT Sheetというのが有ります。

B列 → 番号 
D列 → お客様コード
E列 → お客様名・会社名

        B列        E列

 6    1     個人名
 7    2     個人名
 8    3     会社名
 9    4     会社名
10     5        市長

お忙しい中、どうぞよろしくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


回答になっていないかも知れませんが,そんな複雑な事をせず,

CLIENT SheetのB列を元々「様」「殿」「御中」にしておくのは?
G列にE列の値とB列の値を結合した文字列を作っておく。

B列の数字をほかでも使うのでダメ,と言うなら,CLIENT SheetのF列に
B列の値が1なら様,3なら御中,5なら殿,と言う関数を作っておいて,E列の値と文字列結合したものをG列に置く。

長3封筒SheetではG列の値を参照する。
にしたら良いのではないでしょうか?

何が2回になるのかわかりませんでしたが,
D9セルを作りたくないという事なら,名前の定義で
名前を敬称,範囲を=IFERROR(VLOOKUP(A1,CLIENT!B:E,4,FALSE),"") として
G7セルの「D9」の文字を「敬称」に変えれば良いかと。

(ちら見マン) 2022/02/03(木) 19:04


ちら見マン 様

ご教示ありがとうございます。

関数は初心者の為、申し訳ありませんが、丁寧にご教示お願いします。

長3封筒 Sheet D9セルに関数を入れなくても

例としました下記のセル「長3封筒 SheetのA1」に数字の1や3や5などを入れると
長3封筒 Sheet の「G7」に下記の様に表示できるのでしょうか?

長3封筒 SheetのA1「1」 → 個人名 様
長3封筒 SheetのA1「3」 → 会社名 御中
長3封筒 SheetのA1「5」 → 市長  殿

宜しくお願い致します。

只今、名前の定義を見ています。

(イチゴ) 2022/02/03(木) 21:19


 CLIENT シートに作業列を作って良いのなら、
 せっかくご自身で数式を組まれたのですから、それを使えばよろしいかと。

 <CLIENTシート>
     |[B]|[C]|[D]|[E]   |[F]                                                                                     
 [6] |  1|   |   |個人名|=IFS(COUNTIF(E6,"*会社*"),E6&"   御中",COUNTIF(E6,"*市長*"),E6&"  殿",TRUE,E6&"  様")
 [7] |  2|   |   |個人名|個人名  様                                                                             
 [8] |  3|   |   |会社名|会社名   御中                                                                          
 [9] |  4|   |   |会社名|会社名   御中                                                                          
 [10]|  5|   |   |市長  |市長  殿

 <長3封筒シート>
 G7セル =IFERROR(VLOOKUP(A1,CLIENT!B:F,5,FALSE),"")                                                           
(こたつねこ) 2022/02/03(木) 22:07

 あまりスマートではないですが
 個人名、会社名、市長などが抽出出来ているのならその関数の後ろに
 &IFERROR(CHOOSE(Sheet1!$A$1,"様","","御中","","殿"),"")
 を付けてはどうでしょうか

 Sheet1のA1の値が1なら様、2なら空白、3なら御中と後は順番なので番号に合わせて付け足す
 但しSheet1のA1の番号が大きくなると長くなるので
(なるへそ) 2022/02/04(金) 11:00

こたつねこ 様

ご教示ありがとうございます。

長3封筒 Sheet D9からD1のセルに
=""&IFERROR(VLOOKUP(A1,CLIENT!B:E,4,FALSE),"")と入力して、

長3封筒 Sheet G7のセルに
=IF(D1="","",IFS(COUNTIF(D1,"*会社*"),D1&" 御中",COUNTIF(D1,"*市長*"),D1&" 殿",TRUE,D1&" 様"))と入力して使用したいと考えています。

CLIENT シートはそのままにして、
1行目を印刷設定で印刷しないようにして出力すればいいのかな、と考えています。

売上・納品書・請求明細書・受領書・請求書・合計請求書・長3封筒・角2筒等を
必要な分だけ抽出し、別Sheetに出力し印刷する予定です。

G7セル1つで完結できる関数はないのかなと考えていました。

お忙しい中、感謝いたします。
ありがとうございます。

(イチゴ) 2022/02/04(金) 20:00


なるへそ 様

ご教示ありがとうございます。

長3封筒 Sheet A1の数字は入れば最高で300になります。

VBAだと可能なんでしょうか?

お忙しい中、感謝いたします。
ありがとうございます。

(イチゴ) 2022/02/04(金) 20:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.