- 締切済み
Exel関数の質問です。
Exel関数の質問です。 (VBAは使用できないのでよろしくお願いします) すごく分りにくかったらごめんなさい。 「請求先」と名前をつけたセルが4つあります(請求先一覧!A2:A5)。 これを、シート「請求書」のA2に入力制限のリストで「=請求先」と指定しました。 このあとで、請求書!A3からA5に、A2の値に従って循環表示するような方法を探しています。 わかりにくいと思うので下をご参照ください。 「請求先」 A社 B社 C社 D社 請求書!A2 に選択したのがC社だった場合の請求書!A3~A5 D社 A社 B社 請求書!A2 に選択したのがA社だった場合の請求書!A3~A5 B社 C社 D社 配列関数などは調べたのですがエクセルを学び始めたばかりで挫折しました・・・。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- Sinogi
- ベストアンサー率27% (72/260)
#4です。 提示した式の G$1 は「請求先」の先頭セルです。 皆さんの式より長ったらしいうえ、余分なことを考えなければいけませんね。 板汚し失礼しました。
- riveron77
- ベストアンサー率48% (180/370)
VLOOKUPという関数を使う、じゃだめですか? 【VLOOKUP関数の使い方】 http://allabout.co.jp/gm/gc/3143/ イメージは画像を見ていただくとして。 A2には入力規則のリストで「A社,B社,C社,D社」と設定しています。 右側にあるリストがVLOOKUP用の一覧表。 A2には↓こんな式が埋まってます。 =VLOOKUP(A2,D3:G6,2,FALSE) 以下、同じように… =VLOOKUP(A2,D3:G6,3,FALSE) =VLOOKUP(A2,D3:G6,4,FALSE)
- Sinogi
- ベストアンサー率27% (72/260)
いっぱい回答がありますね。 私も考えたので発表したいです(^^; セルA3 =IF(MATCH(A2,請求先,0)=COUNTA(請求先),G$1,OFFSET(G$1,MATCH(A2,請求先,0),0)) 以下みなさんと同様です
- watabe007
- ベストアンサー率62% (476/760)
A3に =INDEX(請求先,MOD(MATCH(請求書!A2,請求先),4)+1) 後は下へコピー
- keithin
- ベストアンサー率66% (5278/7941)
請求書!A3には =IF(A2="","",INDEX(請求先,MOD(MATCH(A2,請求先,0),COUNTA(請求先))+1)) と入れて,必要数下にコピーしておきます。 #別の手 請求先一覧シート: A2にA社 B2にB社 A3にB社 B3にC社 A4にC社 B4にD社 A5にD社 B5にA社 のように,入力規則のリストのネタにしたA2:A5の隣のB2:B5に,それぞれ該当する「次の社名」を手入力(コピー)でも数式でもで用意しておき,VLOOKUPする(4番目の引数は必ずFALSEで)と簡単にできます。
- mt2008
- ベストアンサー率52% (885/1701)
請求書シートのA3に↓を入れてA5までコピーでどうでしょう。 =INDEX(請求先,ROW()-2+COUNTIF(A$2:A2,INDEX(請求先,ROW()-2))) もっといい方法がありそうなんですが……。