- ベストアンサー
エクセルで表引き
- 初心者でも使えるエクセルの表引き関数について教えてください。
- エクセルの表引きで異なる記号ごとに連番を取得する方法を教えてください。
- エクセルの表引きで大量のデータを検索する際に使える関数について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あれ?ローマ数字のI,II,IIIですか?それともアルファベットのアイを並べてI,II,IIIですか? アルファベットなら =IFERROR(INDEX($A$1:$A$11,MATCH("I"&ROW(A1),D:D,0)),"") と =IFERROR(INDEX($A$1:$A$11,MATCH("II"&ROW(A1),D:D,0)),"") と =IFERROR(INDEX($A$1:$A$11,MATCH("III"&ROW(A1),D:D,0)),"") です。 カッコが誤記てましたね。大変失礼しました。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
作業列を作らないで対応する場合には式がかなり複雑になりますし計算にも負担がかかります。 前回の式で列番号を一つ左にずらせばよいのではないですか。 作業列を作って対応するのがよいでしょう。 D1セルは空白のままでD2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="","",C2&COUNTIF(C$2:C2,C2)) A16セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>COUNTA(D$1:D$11),"",IF(COUNTIF(D$1:D$11,IF(ROUNDUP(ROW(A1)/4,0)=1,"I"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=2,"II"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=3,"III"&MOD(ROW(A1)-1,4)+1,0))))=0,"",INDEX(A$1:A$11,MATCH(IF(ROUNDUP(ROW(A1)/4,0)=1,"I"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=2,"II"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=3,"III"&MOD(ROW(A1)-1,4)+1,0))),D$1:D$11,0))))
お礼
KURUMITO 様 ありがとうございました。お蔭様で解決しました。 C列の「記号」がいけなかったのですね。ローマ数字でした。 keithin 様にご指摘いただく前に気付くべきでした。 変更したところ無事成功しました。 度重ねての不手際をお詫びいたします。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。
補足
KURUMITO 様 重ねてご回答いただき誠にありがとうございます。 どうもうまく動かないようなので助けていただけないでしょうか。 「D1セルは空白のままでD2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="","",C2&COUNTIF(C$2:C2,C2))」 この部分は成功しており D2以下に III1 II1 I1 III2 I2 III3 II2 I3 I4 II3 と表示されます。 「A16セルには次の式を入力して下方にドラッグコピーします。=IF(ROW(A1)>COUNTA(D$1:D$11),"",IF(COUNTIF(D$1:D$11,IF(ROUNDUP(ROW(A1)/4,0)=1,"I"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=2,"II"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=3,"III"&MOD(ROW(A1)-1,4)+1,0))))=0,"",INDEX(A$1:A$11,MATCH(IF(ROUNDUP(ROW(A1)/4,0)=1,"I"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=2,"II"&MOD(ROW(A1)-1,4)+1,IF(ROUNDUP(ROW(A1)/4,0)=3,"III"&MOD(ROW(A1)-1,4)+1,0))),D$1:D$11,0)))) 」 この部分で、セルは空欄になってしまいます。関数は入っていますが、エンターを押すと、何も表示されません。 私の単純なミスでしょうか。 教えていただければ幸いです。
- keithin
- ベストアンサー率66% (5278/7941)
一番簡単で、最も高速にできる方法としては D2セルに =IF(C2="","",C2&COUNTIF($C$2:C2,C2)) と記入してD11までコピー貼り付けておきます。 Iの先頭のA16セルに =IFERROR(INDEX($A$1:$A$11,MATCH("I"&ROW(A1),D:D,0),"") としてIの領域にコピー(つまりA19までという意味ですよ) IIの先頭のA20セルには =IFERROR(INDEX($A$1:$A$11,MATCH("II"&ROW(A1),D:D,0),"") としてIIの領域にコピー IIIの先頭のA24セルには =IFERROR(INDEX($A$1:$A$11,MATCH("III"&ROW(A1),D:D,0),"") としてIIIの領域にコピーします。 #補足事項は前回と同じなので、もう一度読み返しておいてください。
補足
keithin 様 重ねてご回答いただき、誠にありがとうございます。 御教授いただいたとおりに処理したつもりですが、失敗しているので助けていただけないでしょうか。 「D2セルに=IF(C2="","",C2&COUNTIF($C$2:C2,C2)) と記入してD11までコピー貼り付けておきます」 この部分は成功しており、 D2以下に III1 II1 I1 III2 I2 III3 II2 I3 I4 II3 と表示されますが 「Iの先頭のA16セルに =IFERROR(INDEX($A$1:$A$11,MATCH("I"&ROW(A1),D:D,0),"") としてIの領域にコピー」 この部分で以下のエラーが出ます。 「数式中に対応するかっこがありません。かっこを追加して下さい。」 そこで、最後に「)」を入力すると 「この関数に対して少なすぎる引数が入力されています」 とエラーが出ます。 作業自体に問題があるのでしょうか。 しばらくお待ちいたしますので、教えて下さい。
お礼
keithin 様 ありがとうございました。お蔭様で解決しました。 ローマ数字でした。 度重ねての不手際をお詫び申し上げます。 簡単で恐縮ですが、お礼申し上げます。