teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2018/08/26 16:37

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,4 @@
1
- 理由は範囲の片側しか判定されていないからです。
1
+ 理由はの1点目として範囲の片側しか判定されていないからです。
2
2
  以下のように記述する必要があります。
3
3
  ```VBA
4
4
  Select Case True
@@ -9,7 +9,9 @@
9
9
 
10
10
  End Select
11
11
  ```
12
+ 後は起点となる部分をずらしていない(上記だとM1)から。
13
+
12
- 軽くするだけの理由なら以下のような式だと軽減されませんか?
14
+ ただ、軽くするだけの理由なら以下のような式だと軽減されませんか?
13
15
  ```Excel
14
16
  =((M$1>=$B2)*(M$1<$C2)*$G2+(M$1>=$C2)*(M$1<$D2)*$H2+(M$1>=$D2)*(M$1<$E2)*$I2+(M$1>=$E2)*(M$1<$F2)*$J2+(M$1>=$F2)*$K2)*$A2
15
17
  ```

2

修正

2018/08/26 16:37

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  ```
12
12
  軽くするだけの理由なら以下のような式だと軽減されませんか?
13
13
  ```Excel
14
- =((M$1>=$B2) *(M$1<$C2)*$G2+(M$1>=$C2)*(M$1<$D2)*$H2+(M$1>=$D2)*(M$1<$E2)*$I2+(M$1>=$E2)*(M$1<$F2)*$J2+(M$1>=$F2)*$K2)*$A2
14
+ =((M$1>=$B2)*(M$1<$C2)*$G2+(M$1>=$C2)*(M$1<$D2)*$H2+(M$1>=$D2)*(M$1<$E2)*$I2+(M$1>=$E2)*(M$1<$F2)*$J2+(M$1>=$F2)*$K2)*$A2
15
15
  ```
16
16
  ※上記をM2に張り付けてコピーして、他のセルに張り付け
17
17
  但し、例示の書式だとどちらかに寄せるしかないので、上記は開始を起点として片側のみの判断となっています。

1

修正

2018/08/26 16:32

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -10,9 +10,9 @@
10
10
  End Select
11
11
  ```
12
12
  軽くするだけの理由なら以下のような式だと軽減されませんか?
13
- M2の例
14
13
  ```Excel
15
- =((M1>=B2)*(M1<C2)*G2+(M1>=C2)*(M1<D2)*H2+(M1>=D2)*(M1<E2)*I2+(M1>=E2)*(M1<F2)*J2+(M1>=F2)*K2)*A2
14
+ =((M$1>=$B2) *(M$1<$C2)*$G2+(M$1>=$C2)*(M$1<$D2)*$H2+(M$1>=$D2)*(M$1<$E2)*$I2+(M$1>=$E2)*(M$1<$F2)*$J2+(M$1>=$F2)*$K2)*$A2
16
15
  ```
16
+ ※上記をM2に張り付けてコピーして、他のセルに張り付け
17
17
  但し、例示の書式だとどちらかに寄せるしかないので、上記は開始を起点として片側のみの判断となっています。
18
18
  ※VBAでも同じだと思いますが。