こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

Excel関数

Excel関数を使って下のような表示をさせたいです。
A列:場所、
B列:品名
C列:関数(A列に該当するB列の品名の略称を表示させる)
  ※下の表は頭文字を結合したものを表示
C列にはどのような関数をくめばいいでしょうか。

ご教授お願いします。

 | A     B     C
ーーーーーーーーーーーーーーーー
1|福岡   りんご   りばな
2|京都   ぶどう   ぶ
3|福岡   ばなな   りばな
4|東京   なし    なぶ
5|東京   ぶどう   なぶ
6|福岡   なし    りばな

投稿日時 - 2016-01-26 04:24:33

QNo.9117223

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

 以下の様にしますと、作業列は1列だけで済みます。

 まず、E1セルに次の様な関数を入力して下さい。(もし元の表が9999行目よりも下の行にまで続いている様な場合には、下記の関数において$9999となってる箇所を、使用する行数を上回る行番号となる様に、適時修正して下さい)

=IF(OR($A1="",$B1=""),"",IF(COUNTIFS($A$1:$A1,$A1,$B$1:$B1,$B1)=1,$A1&"★"&LEFT($B1,1)&IFERROR(REPLACE(VLOOKUP($A1&"★*",E2:E$9999,1,FALSE),1,LEN($A1&"★"),),""),""))

 次に、E1セルをコピーしてE2以下に貼り付けて下さい。
 次に、C1セルに次の様な関数を入力して下さい。

=IF($A1="","",REPLACE(VLOOKUP($A1&"★*",$E:$E,1,FALSE),1,LEN($A1&"★"),))

 次に、C1セルをコピーしてC2以下に貼り付けて下さい。

 以上です。

投稿日時 - 2016-01-26 12:35:18

お礼

返事遅くなりました。
できました。ありがとうございます。
自分ではこのような関数が思いつかなかったので、助かります。

投稿日時 - 2016-03-31 09:16:33

ANo.1

作業列をいくつも作成する方法がわかりやすいと思います。

C1式
=IFERROR(INDEX(H:H,MATCH(A1,G:G,0)),"")

E列:県名の重複しないリスト作成用数式
E1式
=IF(A1="","",IF(COUNTIF($A$1:A1,A1)=1,ROW(),""))

F列:各県の重複しない品名リスト作成用数式
F1式
=IF(A1="","",IF(COUNTIFS($A$1:A1,A1,$B$1:B1,B1)=1,A1&COUNTIF($A$1:A1,A1),""))

C1~F1下方へオートフィル(H列数式入力までC列には何も表示されません)

G列:重複しない県名抽出
G1式
=IFERROR(INDEX(A:A,MATCH(SMALL(E:E,ROW(A1)),E:E,0)),"")

H列:品名の頭文字の結合文字
H1式
=I1&J1&K1&L1&M1&N1&O1&P1
(I列以降の数式入力まで何も表示されない)

I列以降:品名の頭文字の取得
I1式
=IFERROR(LEFT(INDEX($B:$B,MATCH($G1&COLUMN(A1),$F:$F,0)),1),"")
P1までオートフィル

G1~P1 下方へオートフィル

品名対応は各県で8種類としています。
もっと必要な場合はI1式をP1以降までコピーし、H1式の&式を増やして下さい。
数式はデータが無い場合は空白となりますので、現状データ範囲より大きい範囲にコピーすれば追随します。(H1、I1数式は修正必要な場合がある)

投稿日時 - 2016-01-26 11:01:20

お礼

なるほど。分割してからという手もありますね。
試してみます。ありがとうございます。

投稿日時 - 2016-03-31 09:17:36

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-