- ベストアンサー
エクセルで指定数まで増えると隣のセルを参照したい
- エクセルで特定の数まで増えたら隣のセルを参照する方法について質問です。
- 特定の条件でセルの参照を変える方法を教えてください。
- 循環関数にならない方法で、エクセルで指定数まで増えると隣のセルを参照する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- shintaro-2
- ベストアンサー率36% (2266/6245)
>10に達したらD1の15を参照する。とすれば最初の質問が解決できると踏んでいるのですが、できませんでした。 if文を駆使すれば、お望みの事は大体できます 現在記入されている、3,4,5という数字に対応させたものを作成することは可能です 例えば c4に =IF(LEFT(C3,3)=LEFT(C2,3),IF(B$1>RIGHT(C3,1)*1,A1&RIGHT(C3,1)+1,A2&1),IF(B$2>RIGHT(C3,1)*1,A2&RIGHT(C3,1)+1,A3&1)) しかし、数字を1,1,1とかに変更してしまうと $つきの参照セルを手で修正しないと対応できません。 どうしても関数でやる場合は 数字のセルにそれぞれの名前を付け、 一つ上のセルと同じ名前が使えるのなら、一つ上のセルから得た名前を使って indirectを使い 違う名前にする必要がある場合は offsetの基準に名前を付けたセルが使えれば、何とかできるでしょう。
- Prome_Lin
- ベストアンサー率42% (201/470)
マクロで書くと、以下のようになるのですが、これだけのことが、関数だけでできるのでしょうか? 一瞬、「=rept()」が使えないか、とも思ったのですが・・・ Option Explicit Sub Test() Dim n() As String Dim c(), i, j, l, r As Integer r = Range("A1").End(xlDown).Row For i = 1 To r ReDim Preserve n(i - 1) ReDim Preserve c(i - 1) n(i - 1) = Cells(i, 1).Value c(i - 1) = Cells(i, 2).Value Next i l = 0 For i = 1 To r For j = 1 To c(i - 1) l = l + 1 Cells(l, 4).Value = n(i - 1) Next j Next i End Sub
- aokii
- ベストアンサー率23% (5210/22062)
たかし/1 ひろし/1 はなこ/1 たかし/2 ひろし/2 はなこ/2 ・ ・ ・ という表を作ってから、=A1&B1にしてはいかがでしょう。
お礼
早速の回答ありがとうございます。 せっかくお答えいただいたのですが、そうではなくて 表を元に自動で表示させたいのです。 例えば今日は表のたかし/3が、来月はたかし/5となった場合に「たかし4」と「たかし5」が自動で表示(再計算)して表示したいのです。 いっそ手作業でやるしか無いのでしょうか・・・。
お礼
回答ありがとうございます。実際に数を増やしてみたり、「はなこ」の下に「たろう/ 3」と追加したりしたところ、望む動きをしてくれました! とても嬉しいです! ただ、どうしてこのような動きをしているのか、まだ理解できません。 分解してみたり、色々と頂いた関数をいじってみます! 本当に助かりました。 ちなみにですが、なぜこの関数が必要になったかと言いますと 求人広告の契約枠数と実際の掲載数を比べて見たかったからです。 「たかし」が3枠契約していて、 別の表から「たかし」が2件掲載中であることを「たかし1」「たかし2」と表示して分かるようにしているので、 契約枠 掲載数 たかし1 たかし1 たかし2 たかし2 たかし3 (空欄) と、このように比較して「あと1件空きがありますよ」と見えるようにしたかったのです。 本当にありがとうございました。