【Excel】SUMIF関数の文字列版を作る方法

プロモーションが含まれています

【Excel】SUMIF関数の文字列版を作る方法

SUMIF関数で、文字列は扱えませんが、前回のVLOOKUP関数を複数対応にする方法をカスタムして、SUMIF関数と同じような動きで文字列を返す関数を作りました。

【Excel】VLOOKUP関数で、重複する一覧から正しく該当行を検索する
Excelで、VLOOKUP関数を使って、重複する一覧から正しく該当行を検索する方法。 この方法とSUMIF関数の文字列版を作る方法を使ってebayのFile Exchangeでのバリエーション出品(サイズ違い)を自動抽出...

Excel関連記事

関連記事をもっとみる

VLOOKUP関数で該当行を取り出す

前回のVLOOKUP関数を複数対応にする方法で重複しない値を作成しました。

【Excel】VLOOKUP関数で、重複する一覧から正しく該当行を検索する
Excelで、VLOOKUP関数を使って、重複する一覧から正しく該当行を検索する方法。 この方法とSUMIF関数の文字列版を作る方法を使ってebayのFile Exchangeでのバリエーション出品(サイズ違い)を自動抽出...

あとはそれをどうやって取り出すかです。

方法は2つありますがどちらも若干面倒です。
関数でできないことをやるので仕方ないと割り切りましょう。

また、ある程度、項目の最大数を見積もっておく必要があります。

基本的な考え方は同じで、
「出現順 + 商品コード」で取り出せるのでその数式を作ります。

1.作業シートを使わない方法

単純に1つのセルにひたすら羅列する方法です。

私的には数式が見にくくなるのでおすすめしませんが作業シートが作れない場合はこの方法でしかできませんね。

=IFERROR(VLOOKUP(1&+”-“&+$A2,Sheet1!$B:$D,3,0)&+”;”,””)
&+IFERROR(VLOOKUP(2&+”-“&+$A2,Sheet1!$B:$D,3,0)&+”;”,””)
&+IFERROR(VLOOKUP(3&+”-“&+$A2,Sheet1!$B:$D,3,0)&+”;”,””)…

VLOOKUPの検索値を「出現順 + 商品コード」でとりだしますが、出現順は手動で変更になります。
この作業を項目の最大数分繰り返します。

また、VLOOKUPのみでやってしまうとどこかで検索値が見つからなかった場合そのセル自体がエラーを返してしまうので、
IFERROR関数を使って見つからなかった場合は空白にする処理にしています。

2.作業シートを使う方法

vlook3

基本的に1.の処理と方法は変わりません。ちょっと楽するだけです。
A列に商品コード、
B列に結合結果、
C列の1行目~最大数に出現順をオートフィルタで入力します。

C2のセルに入れる数式は、

=IFERROR(VLOOKUP(C$1&+”-“&+$A2,Sheet1!$B:$D,3,0)&+”;”,””)

あとはオートフィルタで縦横必要な分延ばして全て結合すれば完了です。

この計算式のポイントは、1.の処理で手動で変更していた出現順の部分を数式で
D列~の2行目を引用することで、オートフィルタで簡単に数が増やせることです。

さらにひとつひとつのセルに1個ずつ関数が入力されているので、変更も簡単にできます。

でも面倒な作業がひとつ残っています。それは、計算結果の結合。

CONCATENATE関数で結合するのですが、範囲指定での文字列結合ができません。
なのでひとつずつぽちぽちしながら結合するものを追加する必要があります。

=CONCATENATE(C2,D2,E2,F2,G2,H2…)

だいぶ力技でしたがSUMIF関数の文字列版を作ることができました!

ebayのFile Exchangeを使う場合は覚えておいて損はないと思います。

【Excel】VLOOKUP関数で、重複する一覧から正しく該当行を検索する
Excelで、VLOOKUP関数を使って、重複する一覧から正しく該当行を検索する方法。 この方法とSUMIF関数の文字列版を作る方法を使ってebayのFile Exchangeでのバリエーション出品(サイズ違い)を自動抽出...

コメント

タイトルとURLをコピーしました