回答編集履歴

3

追記

2022/01/10 04:35

投稿

umau
umau

スコア805

test CHANGED
@@ -115,3 +115,21 @@
115
115
 
116
116
 
117
117
  これを先頭セルに入力してドラッグすると、F2:F8の範囲までズレてしまうので、それを防ぐために`$F$2:$H$8`という書き方で固定しています。
118
+
119
+
120
+
121
+ ---
122
+
123
+ (追記)
124
+
125
+
126
+
127
+ フラグの列に条件式を書けば行けます。失効側も同じように条件付ければ出来るはずです。
128
+
129
+
130
+
131
+ ```
132
+
133
+ =if(and(C17 = 6, B17 <= I17),"★", "")
134
+
135
+ ```

2

追記

2022/01/10 04:35

投稿

umau
umau

スコア805

test CHANGED
@@ -75,3 +75,43 @@
75
75
 
76
76
 
77
77
  ```
78
+
79
+
80
+
81
+ ---
82
+
83
+ (追記)
84
+
85
+
86
+
87
+ やりたい事が少しわかったような気がします。`VLOOKUP`関数で参照する方法を書きます。
88
+
89
+
90
+
91
+
92
+
93
+ ```
94
+
95
+ // B列 (最後の引数が 2)
96
+
97
+ =VLOOKUP(A2,'シート名'!$F$2:$H$8,2)
98
+
99
+
100
+
101
+ // C列 (最後の引数が 3)
102
+
103
+ ==VLOOKUP(A2,'シート名'!$F$2:$H$8,3)
104
+
105
+ ```
106
+
107
+ ![イメージ説明](ee90919beecfb5b0ec2156c89d7a3503.png)
108
+
109
+
110
+
111
+ `VLOOKUP`関数は、別の表をキーで検索し、見つかったキーの「指定したとなりのセル」を参照する関数です。
112
+
113
+ 最後の引数が「何番目の隣のセル」を指定します。ここではF2:H8の範囲の中からA2セルの値を検索し、F2:F8範囲内の2列目を取ってきて表示しています。
114
+
115
+
116
+
117
+ これを先頭セルに入力してドラッグすると、F2:F8の範囲までズレてしまうので、それを防ぐために`$F$2:$H$8`という書き方で固定しています。

1

追記

2022/01/09 09:46

投稿

umau
umau

スコア805

test CHANGED
@@ -9,3 +9,69 @@
9
9
  のようにシート名とセルを指定して書けば良いです。
10
10
 
11
11
  (転記したい場所に`=`を書いて、元シートに移動して対象セルクリックするだけで入力できるはず)
12
+
13
+
14
+
15
+ ---
16
+
17
+ (追記)
18
+
19
+
20
+
21
+ 工数をかけたくない、と言っても、上記の参照を使う方法は、先頭の1セルだけ記入して後は500行下までドラッグするだけですし、プログラムでマクロ組むよりよほど安全で簡単な方法だと思いますよ。何も実行せずとも元データの変更を追従してくれますし。
22
+
23
+
24
+
25
+ 一応、シート間で範囲コピーするコードも参考に置いておきますが、**元データのバックアップを取り、よく内容を理解した上での自己責任**でお願いします。
26
+
27
+
28
+
29
+ 以下は
30
+
31
+
32
+
33
+ * A2セルから「`Ctrl + Shift + 下`」を押して下方向に選択範囲を広げて取得
34
+
35
+ * シート2の **同じ行列の位置** にコピペ
36
+
37
+
38
+
39
+ を行うコードです。
40
+
41
+ `Ctrl + Shift + 下`で範囲取得しているため、行が増えても対応可能な反面、空白行がある場合は途中までしかコピーできないコードです。そちらの状況にあわせて改造してください。
42
+
43
+
44
+
45
+
46
+
47
+ ```javascript
48
+
49
+ function myFunction() {
50
+
51
+ var fromSheet = 'シート1';
52
+
53
+ var toSheet = 'シート2';
54
+
55
+ var startCell = 'A2'
56
+
57
+
58
+
59
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
60
+
61
+ var sh = ss.getSheetByName(fromSheet);
62
+
63
+ sh.getRange(startCell).activate();
64
+
65
+ var rng = SpreadsheetApp.getSelection()
66
+
67
+ .getNextDataRange(SpreadsheetApp.Direction.DOWN);
68
+
69
+ var toRng = ss.getSheetByName(toSheet).getRange(rng.getA1Notation());
70
+
71
+ rng.copyTo(toRng);
72
+
73
+ }
74
+
75
+
76
+
77
+ ```