[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件で文字列を抽出し、並べて記載したい。』(ふぁんた)
既ににある「2.仕入先一覧」に、仕入先が扱っている商品名を「1.仕入先と商品の一覧」
から抽出し、並べて記載したいと思っています。
関数にて対応する方法をどなたかご教授お願い致します。
条件は以下のとおりです。
・仕入先は今後も増え続け、商品も増えます。
・別の仕入先で同じ商品名の場合もあります。
(例:「1.仕入先と商品の一覧」のB2とB10)
・作業列を使っても構いません。
・関数にて対応したいです。
・「2.仕入先一覧」の仕入先に重複はありません。
1.仕入先と商品の一覧
[A] [B] [1] 仕入先 商品名 [2] ああ aaa [3] いい bbb [4] うう ccc [5] ああ eee [6] ああ fff [7] うう ggg [8] いい hhh [9] うう iii [10] いい aaa : :
2.仕入先一覧
[A] [B] [C] [D] [1] ああ いい うう … [2] aaa bbb ccc [3] eee hhh ggg [4] fff aaa iii [5] : : :
< 使用 Excel:Excel2013、使用 OS:Windows7 >
力技だけど、一応・・・
1.仕入先と商品の一覧 (Sheet1とする) [A] [B] [C] [1] 仕入先 商品名 作業列 [2] ああ aaa ああ1 [3] いい bbb いい1 [4] うう ccc うう1 [5] ああ eee ああ2 [6] ああ fff ああ3 [7] うう ggg うう2 [8] いい hhh いい2 [9] うう iii うう3 [10] いい aaa いい3
C2=IF(COUNTIFS($A$2:A2,A2,$B$2:B2,B2)=1,A2&COUNTIF($C$1:C1,A2&"*")+1,"") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ もし、組合せの重複がなければ、「~~~」この部分は不要です。
2.仕入先一覧 A2=IFERROR(INDEX(Sheet1!$B:$B,MATCH(A$1&ROW(A1),Sheet1!$C:$C,0)),"") (稲葉) 2014/07/18(金) 11:52
じゃあ稲葉さんのに追加。 いらなかったら無視して。
Sheet1のD列を作業列に D2に =IF(COUNTIF(A$2:A2,A2)=1,ROW(),"") 下にフィルコピー。
仕入先一覧シート A1に =IF(COUNT(Sheet1!$D:$D)<COLUMN(A1),"",INDEX(Sheet1!$A:$A,SMALL(Sheet1!$D:$D,COLUMN(A1)))) 右にフィルコピー
(1111) 2014/07/18(金) 12:08
早速の回答、ありがとうございました!
バッチリ解決できました。
(私から見ると稲葉様の回答のどの辺が「力技」なのか、全くわからないのですが…)
また1111様から頂いた関数も当てはめてみたのですが、
何かが間違っているのか、各仕入れ先に対して1行目の商品のみ抽出
されるのですが、2行目(2つ目)以降は、上手く反映されませんでした。
まだ、頂いた関数事態の意味を理解しきれていないこともあるかと思いますので、
もう少し確認して習得したいと思っています。
お二人とも、ありがとうございました。
短時間に2パターンも頂いて、昨日1日悩んだのはなんだったのか…と
自分のスキルの無さに悲しくなります。
(ふぁんた) 2014/07/18(金) 13:49
あ、俺のは1行目だけ抽出するのだから「稲葉さんのに追加」って書いたんだ。 稲葉さんのは1行目が出なかったから。
すでに仕入れ先が仕入先一覧シートの1行目に抽出されてるなら、俺の式はいらないなーということで。
仕入先一覧シートの1行目抽出する必要があるなら俺のを1行目だけ使って2行目からは稲葉さんのを。 抽出済みなら稲葉さんのだけつかって。
(1111) 2014/07/18(金) 14:24
コメント返信、ありがとうございます!
>あ、俺のは1行目だけ抽出するのだから「稲葉さんのに追加」って書いたんだ。 >稲葉さんのは1行目が出なかったから。 そういうことだったんですね。 すっきりしました。
本当にありがとうございました。
(ふぁんた) 2014/07/18(金) 16:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.