- ベストアンサー
2つのセルに数量をわけたいのですが。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと厄介な課題ですが、作業列を1個使えば関数で解決できます。 hidesan_31さんには申し訳ないですが、勝手にC列の内容を作業列用に変更させていただきます。 -----------------以下 作業内容---------------- C列は2種類の関数を入力しなければいけません。 C2に「=IF($B$2="","",1)」と入力してください。 C3から下には「=IF(OR(COUNTIF(OFFSET($C$2,0,0,ROW()-2,1),C2)>1,MOD(OFFSET($B$2,C2-1,0,1,1),2)=1),C2+1,C2)」と入力してください。 D・E列はそれぞれ1つの関数だけで大丈夫です。 D2から下には「=IF(OFFSET($A$2,C2-1,0,1,1)="","",OFFSET($A$2,C2-1,0,1,1))」と入力してください。 E2から下には「=IF(D2="","",IF(MOD(OFFSET($A$2,C2-1,1,1,1),2)=1,OFFSET($A$2,C2-1,1,1,1),OFFSET($A$2,C2-1,1,1,1)/2))」と入力してください。 -------------------ここまで------------------- 非常に分かりづらい数式ですが、この数式で途中で値が変化しても動的に対応できるはずです。4行目以降はC3・D3・E3のセルをコピーしてあげてください。
その他の回答 (2)
- Turbo415
- ベストアンサー率26% (2631/9774)
やりたいことがいまいちよく解りません。 この写真で言って、右側の個数の所を変えるのでしょうか? たえとえば、1行目は10個だから右の個数は5で、4行目は3個なので、右の個数を3としたいのでしょうか? 例えば11だったら11で12だったら6にするのでしょうか? でしたら、E2のセルに=if(C2="奇数",B2,B2/2)とするとできると思いますけど。
- merlionXX
- ベストアンサー率48% (1930/4007)
関数よりもVBAの方が簡単そうです。 以下の手順をおためしください。 1.AltキーとF11キー同時に押し(以下Alt+F11キーと記述)て Visual Basic Editor を呼び出します。 2.Visual Basic Editor の上部のメニューから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 '********これより下********** Sub test01() i = 2 For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp)) If c.Value Mod 2 = 0 Then c.Offset(0, 1).Value = "偶数" Cells(i, "D").Value = c.Offset(0, -1).Value Cells(i, "D").Offset(1).Value = c.Offset(0, -1).Value Cells(i, "E").Value = c.Value / 2 Cells(i, "E").Offset(1).Value = c.Value / 2 i = i + 2 Else c.Offset(0, 1).Value = "奇数" Cells(i, "D").Value = c.Offset(0, -1).Value Cells(i, "E").Value = c.Value i = i + 1 End If Next c End Sub '********これより上********** 3.Alt+F11キーでワークシートへもどります. 4.Alt+F8キーで出てきたマクロ名(test01)を選択して実行します。
お礼
VBAのほうがスマートにできるようですね ありがとうございます^^ 参考にさせていただきます。
お礼
御礼を言うのが遅くなりすいませんでした。 こちらの関数で思い通りのことができましたありがとうございます。