- 締切済み
エクセル関数
エクセル初心者につき、質問させていただきます。 集計(抽出でしょうか)に関し シートAには A列に個々の件番(数値6桁です)があります 同一件番が複数あったり、一つだけだったりと 不規則です。 B列にA列の件番に対しての項目(文字列)があります A列 B列 100001 電車 100001 バス 100001 徒歩 100003 徒歩 100006 電車 100006 バス これらのデータをシートBにて A列に6桁の数値を入力したら B・C・D列に以下の通り反映されるように したいのですがうまくいきません A列 B列 C列 D列 100001 電車 バス 徒歩 100003 徒歩 100006 電車 バス 適した関数を御教え頂ければありがたくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
SUMPRODUCT関数などはデータの数が多くなると計算速度が重くなります。できるだけ簡単で分かり易い方法は次のように作業列を作って対応することでしょう。 シート1には最初に表が2行目から下方に入力されているとします。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =A2&B2 お求めの表はシート2に作成するとしてA1セルには件番、B1セルには電車、C1セルにはバス、D1セルには徒歩と入力します。 A2セルから下方には件番を入力するとして、B2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(B$1="","",IF(COUNTIF(Sheet1!$C:$C,$A2&B$1)>0,B$1,""))
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 ↓の画像のようにSheet1のデータをSheet2に表示するようにしてみました。 ご希望の方法とは少し違うかもしれませんが、Sheet2の1行目にSheet1のB列項目を入力しておきます。 そして余計なお世話かもしれませんが、Sheet1のA列データを重複なしに表示するために作業用の列を設けています。 Sheet1の作業列C2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 そしてSheet2のA2セルに =IF(COUNT(Sheet1!C:C)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!C:C,ROW(A1)))) B2セルに =IF(SUMPRODUCT((Sheet1!$A$1:$A$1000=$A2)*(Sheet1!$B$1:$B$1000=B$1)),B$1,"") という数式を入れ、D2セルまでオートフィルでコピー! 最後にA2~D2セルを範囲指定し、D2セルのフィルハンドルで下へコピーすると 画像のような感じになります。m(__)m
- keithin
- ベストアンサー率66% (5278/7941)
BCD列に =IF(SUMPRODUCT((Sheet1!$A$1:$A$6=$A1)*(Sheet1!$B$2:$B$6="電車")),"電車","") =IF(SUMPRODUCT((Sheet1!$A$1:$A$6=$A1)*(Sheet1!$B$2:$B$6="バス")),"バス","") =IF(SUMPRODUCT((Sheet1!$A$1:$A$6=$A1)*(Sheet1!$B$2:$B$6="徒歩")),"徒歩","") 実際には,表のいきなり1行目から実データを開始するなんて使い方はしませんよね。 最低1行目には項目を入れて,するとそれを使って数式ももっと整理して作成できます。 またご利用のエクセルのバージョンもご質問に書かれていませんが,新しいバージョンのエクセルを使っているなら,もっと簡単で使いやすい関数で工夫する方法もあります。
お礼
早速のご解答本当に有難うございます。 やりたかったことが100%達成できました。 こんなに早く解決のご解答が頂けるのなら もっと早くに活用させていただけばよかったです。 繰り返しですが 本当に有難うございました。
お礼
早速のご解答有難うございます。 解決は出来ましたが このような方法もあるのですね。 ちょっと自分にはハードルが高そうですが! 本当に有難うございます。