人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelの使い方についての質問です。私的にズバリご回答、先着の方には100ptを送信させていただきます。詳しい方にしてみれば、簡単な操作だと思います。「**のホームページに詳しく載っているよ」でも構いません。よろしくお願いいたします。

・1列目:顧客IDの全て
・3列目:A商品の購入歴がある顧客ID
・4列目:B商品の購入歴がある顧客ID
・5列目:C商品の購入歴がある顧客ID


1列目の顧客IDの横、2列目に、購入商品の欄を追加したいのです。下のようなイメージです。どのようにすれば良いでしょうか?

顧客ID200番 AC
顧客ID225番 C
顧客ID296番 BC

●質問者: ohagi5168
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

一行目はタイトル行だとして、A2 セルに以下の式を入力。

=IF(ISNA(VLOOKUP(A2,C:C,1,FALSE)),"","A")&IF(ISNA(VLOOKUP(A2,D:D,1,FALSE)),"","B")&IF(ISNA(VLOOKUP(A2,E:E,1,FALSE)),"","C")

A2 をコピーして、A3 以降に貼りつけ。

分解すると、こんな感じです。

=
 IF(ISNA(VLOOKUP(A2,C:C,1,FALSE)),"","A") ' C列から A2 を探して、あったら "A"
 & ' 文字列としてくっつける
 IF(ISNA(VLOOKUP(A2,D:D,1,FALSE)),"","B") ' 同様に D列から探して "B"
 &
 IF(ISNA(VLOOKUP(A2,E:E,1,FALSE)),"","C")

smithy250さんのコメント
ISNA(VLOOKUP())よりcountifのほうが動作が軽いと思います。 =IF(countif(C:C,A2)),"A","")&IFIF(countif(D:D,A2)),"B","")&IFIF(countif(E:E,A2)),"C","")

smithy250さんのコメント
削除 ISNA(VLOOKUP())よりcountifのほうが動作が軽いと思います。 =IF(countif(C:C,A2)),"A","")&IF(countif(D:D,A2)),"B","")&IF(countif(E:E,A2)),"C","")

a-kuma3さんのコメント
>> countifのほうが動作が軽いと思います << ちらっと頭をよぎったのですが、countif は指定した範囲を全てスキャンするだろう、vlookup は見つかったら、そこでスキャンを停止するんじゃないか、と思って vlookup を選択しました。

smithy250さんのコメント
たしかに。vlookupは重いという先入観で言ってしまいました。 たしかにcountifの方が計算量多いですね。 あとはB?D列を並び替えしてあればもっとgoodですね。

a-kuma3さんのコメント
「vlookupは重い」という感覚、とても分かります <tt>:-)</tt>

ohagi5168さんのコメント
ありがとうございます。私的にズバリです!詳しい方にしてみれば、簡単なことなんでしょうね。100ptお送りします。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ