【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
注意事項
・情報を隠すために別の問題を設定するのはやめましょう。たいていの場合その問題は的外れな設定で、期待していたものからずれた回答が返ってきます。
スレッド作成は>>980がやります
※前スレ
Excel総合相談所 157
https://mevius.5ch.net/test/read.cgi/bsoft/1728342726/
Excel総合相談所 158
■ このスレッドは過去ログ倉庫に格納されています
2025/07/31(木) 07:10:39.57
175名無しさん@そうだ選挙にいこう
2025/09/10(水) 21:13:46.13 >>173
派遣
派遣
2025/09/11(木) 10:02:55.83
バリエーションのひとつと捉えて楽しめない時点で向いてないんじゃ?
後でこれいじる奴は相当イライラするだろうな(wktk と思いながら作り込んだブツは数知れず
運用中さえスムースに稼働してりゃそれでいい
それをお気に召さない奴は勝手に作り直せ、っつースタンス
後でこれいじる奴は相当イライラするだろうな(wktk と思いながら作り込んだブツは数知れず
運用中さえスムースに稼働してりゃそれでいい
それをお気に召さない奴は勝手に作り直せ、っつースタンス
2025/09/11(木) 17:25:59.91
A1からA3600に角度が0.000000から359.999999の範囲でランダムに入ってて
C1に1.000を指定したら1.000に最も近い角度の所のB列の値が知りたい
普通なら
=INDEX($B$1:$B$3600,MATCH(MIN(ABS($A$1:$A$3600-$C1)),ABS($A$1:$A$3600-$C1),0))
でいけるらしいけど
0度と360度は同じなので
例えば
0.001度を探すのにA列の値0.005と359.999では359.999の方が近い
という判断をしたい
どのようにしたらいい?
C1に1.000を指定したら1.000に最も近い角度の所のB列の値が知りたい
普通なら
=INDEX($B$1:$B$3600,MATCH(MIN(ABS($A$1:$A$3600-$C1)),ABS($A$1:$A$3600-$C1),0))
でいけるらしいけど
0度と360度は同じなので
例えば
0.001度を探すのにA列の値0.005と359.999では359.999の方が近い
という判断をしたい
どのようにしたらいい?
178名無しさん@そうだ選挙にいこう
2025/09/11(木) 19:56:37.82 >>177
いいから何をしたいのかちゃんと書けよ
いいから何をしたいのかちゃんと書けよ
179名無しさん@そうだ選挙にいこう
2025/09/11(木) 22:30:49.12 Excelではなく数学力の問題だな
三角関数もわからん馬鹿なのか
三角関数もわからん馬鹿なのか
180ChatGPT
2025/09/11(木) 23:03:17.06 >>177
なるほど!
普通の ABS($A$1:$A$3600-$C1) だと「360°≒0°」の円周の繋がりを考慮できないので、360を一周とした“円上の距離”を計算する必要があります。
つまり距離は
=MIN(ABS(A - C), 360 - ABS(A - C))
で表せます 👍
解決策(Excel数式)
例えば C1 に探したい角度が入っている場合、次のようにすれば「円周上で最も近い角度のB列値」が取れます:
=INDEX($B$1:$B$3600, MATCH(MIN(IF(A$1:A$3600<>"", MIN(ABS(A$1:A$3600-$C$1), 360-ABS(A$1:A$3600-$C$1)))), IF(A$1:A$3600<>"", MIN(ABS(A$1:A$3600-$C$1), 360-ABS(A$1:A$3600-$C$1))), 0))
⚠ この式は配列計算なので Excel 365/2021 ならそのまま動作、古いExcelだと Ctrl+Shift+Enter が必要です。
もっとシンプルにするなら
補助列を作る方法がわかりやすいです:
1. D列に「円上の距離」を計算
=MIN(ABS(A1-$C$1), 360-ABS(A1-$C$1))
2. その最小値の行を探して、B列を返す
=INDEX(B1:B3600, MATCH(MIN(D1:D3600), D1:D3600, 0))
👉 質問:補助列を作っても大丈夫ですか?
それとも「数式1発」で解決したいですか?
なるほど!
普通の ABS($A$1:$A$3600-$C1) だと「360°≒0°」の円周の繋がりを考慮できないので、360を一周とした“円上の距離”を計算する必要があります。
つまり距離は
=MIN(ABS(A - C), 360 - ABS(A - C))
で表せます 👍
解決策(Excel数式)
例えば C1 に探したい角度が入っている場合、次のようにすれば「円周上で最も近い角度のB列値」が取れます:
=INDEX($B$1:$B$3600, MATCH(MIN(IF(A$1:A$3600<>"", MIN(ABS(A$1:A$3600-$C$1), 360-ABS(A$1:A$3600-$C$1)))), IF(A$1:A$3600<>"", MIN(ABS(A$1:A$3600-$C$1), 360-ABS(A$1:A$3600-$C$1))), 0))
⚠ この式は配列計算なので Excel 365/2021 ならそのまま動作、古いExcelだと Ctrl+Shift+Enter が必要です。
もっとシンプルにするなら
補助列を作る方法がわかりやすいです:
1. D列に「円上の距離」を計算
=MIN(ABS(A1-$C$1), 360-ABS(A1-$C$1))
2. その最小値の行を探して、B列を返す
=INDEX(B1:B3600, MATCH(MIN(D1:D3600), D1:D3600, 0))
👉 質問:補助列を作っても大丈夫ですか?
それとも「数式1発」で解決したいですか?
181名無しさん@そうだ選挙にいこう
2025/09/12(金) 00:00:32.75 馬鹿が作るとこうなる実例
2025/09/12(金) 00:46:46.31
>>177
=LET(
aa,$A$1:$A$3600,
bb,$B$1:$B$3600,
c,$C1,
dd,ABS(aa-c),
dd\360,IF(dd>180,360-dd,dd),
XLOOKUP(MIN(dd\360),dd\360,bb)
)
=LET(
aa,$A$1:$A$3600,
bb,$B$1:$B$3600,
c,$C1,
dd,ABS(aa-c),
dd\360,IF(dd>180,360-dd,dd),
XLOOKUP(MIN(dd\360),dd\360,bb)
)
183名無しさん@そうだ選挙にいこう
2025/09/12(金) 02:51:03.24 また馬鹿の例
184名無しさん@そうだ選挙にいこう
2025/09/12(金) 05:55:35.33 [表示 ] タブの [ モードの切り替え ] ボタン がない。エクセル2021
↓
[ファイル > アカウント > Office テーマ ] に移動し、[ 黒] または [ システム設定の使用 ] が
選択されていることを確認します。
ダーク モードを有効にするには、[表示 ] タブの [ モードの切り替え ] ボタンを選択します。
↓
[ファイル > アカウント > Office テーマ ] に移動し、[ 黒] または [ システム設定の使用 ] が
選択されていることを確認します。
ダーク モードを有効にするには、[表示 ] タブの [ モードの切り替え ] ボタンを選択します。
2025/09/12(金) 07:56:53.84
2025/09/12(金) 09:06:30.65
>>177
小数誤差でMATCH関数が一致しないのを防ぐためRound関数で丸めたので精度が必要ならダメかも
=INDEX(B1:B3600, MATCH(ROUND(MIN(ABS(MOD(A1:A3600 - C1 + 180, 360) - 180)), 6), ROUND(ABS(MOD(A1:A3600 - C1 + 180, 360) - 180), 6), 0))
小数誤差でMATCH関数が一致しないのを防ぐためRound関数で丸めたので精度が必要ならダメかも
=INDEX(B1:B3600, MATCH(ROUND(MIN(ABS(MOD(A1:A3600 - C1 + 180, 360) - 180)), 6), ROUND(ABS(MOD(A1:A3600 - C1 + 180, 360) - 180), 6), 0))
2025/09/12(金) 12:56:27.46
XLOOKUP(1,COS(RADIANS(aa-c)),bb,,-1)
2025/09/12(金) 15:19:26.73
2025/09/12(金) 15:33:35.90
190名無しさん@そうだ選挙にいこう
2025/09/12(金) 16:15:22.87 >>177
多分できた気がする。
=LET(
getnearanglevalues,LAMBDA(dat,target_angle,LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度)、検索対象データ群(2次元)の1列目の角度の中から、検索角度(1次元まで)に一番近い角度を検索し、その2列目の値を出力する関数を定義。複数同じ近さがある場合、最初に検索した方を出力する。",
cmt_,",検索対象データ群(2次元)は1列目が角度、2列目は対応する値を設定しておく。3列目以降は無視される。",
r,ROWS(dat),rta,ROWS(target_angle),
idxx,MAKEARRAY(rta,r,LAMBDA(y,x,x)),idxy,MAKEARRAY(rta,r,LAMBDA(y,x,y)),
anglex,INDEX(dat,idxx,1), valuex,INDEX(dat,idxx,2), target_anglex,INDEX(target_angle,idxy,1),
new_anglex,ABS(IF(anglex-target_anglex>180,anglex-360,anglex)-target_anglex),
idxnear,BYROW(new_anglex,LAMBDA(x,MATCH(MIN(x), x, 0))),
getvalue,INDEX(dat,idxnear,2),
getvalue
)),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600,C1:C4)
)
多分できた気がする。
=LET(
getnearanglevalues,LAMBDA(dat,target_angle,LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度)、検索対象データ群(2次元)の1列目の角度の中から、検索角度(1次元まで)に一番近い角度を検索し、その2列目の値を出力する関数を定義。複数同じ近さがある場合、最初に検索した方を出力する。",
cmt_,",検索対象データ群(2次元)は1列目が角度、2列目は対応する値を設定しておく。3列目以降は無視される。",
r,ROWS(dat),rta,ROWS(target_angle),
idxx,MAKEARRAY(rta,r,LAMBDA(y,x,x)),idxy,MAKEARRAY(rta,r,LAMBDA(y,x,y)),
anglex,INDEX(dat,idxx,1), valuex,INDEX(dat,idxx,2), target_anglex,INDEX(target_angle,idxy,1),
new_anglex,ABS(IF(anglex-target_anglex>180,anglex-360,anglex)-target_anglex),
idxnear,BYROW(new_anglex,LAMBDA(x,MATCH(MIN(x), x, 0))),
getvalue,INDEX(dat,idxnear,2),
getvalue
)),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600,C1:C4)
)
191名無しさん@そうだ選挙にいこう
2025/09/12(金) 19:08:36.87 文系馬鹿しかおらんの?
2025/09/12(金) 20:15:09.89
>>191
自分語りはいらないですよ
自分語りはいらないですよ
193名無しさん@そうだ選挙にいこう
2025/09/12(金) 20:32:45.12 相変わらず馬鹿が自作自演で質問して馬鹿な回答を書き込むスレだな
2025/09/12(金) 21:05:27.59
A1に =3.8-3.7
B1に 0.1
C1に =IF(A1=B1, “OK”, “NG”)
とするとC1はNGになる
B1に 0.1
C1に =IF(A1=B1, “OK”, “NG”)
とするとC1はNGになる
195名無しさん@そうだ選挙にいこう
2025/09/12(金) 21:48:03.44 次から次へと馬鹿がくるスレ
2025/09/12(金) 21:49:40.79
作業列に誤差を全部入れてMINで取り出した方が簡単
2025/09/13(土) 11:11:21.44
198名無しさん@そうだ選挙にいこう
2025/09/13(土) 12:15:39.18199名無しさん@そうだ選挙にいこう
2025/09/13(土) 12:53:55.55 選択セルがズレるとか吹き出しのテキスト編集がやたら重いとかはここの住人的にはどう思ってる?
200名無しさん@そうだ選挙にいこう
2025/09/13(土) 20:11:51.36 現在、シフト表を作っており、人名が縦に並んでおり、1~31日まで横に並んでいるシフト表を作成しています。
そこで〇を付けたシフト表をSheet2にて月曜日~日曜日の7日ごとに並んだカレンダーに自動で表示させたく思います。
また縦型カレンダーの曜日計算は
=G1-WEEKDAY(G1)+2
※G1にはシフト作成月の年月の1日目が入る
を使用しており、自動で月曜日が出るようになっています。
この場合何か方法はありますでしょうか。
そこで〇を付けたシフト表をSheet2にて月曜日~日曜日の7日ごとに並んだカレンダーに自動で表示させたく思います。
また縦型カレンダーの曜日計算は
=G1-WEEKDAY(G1)+2
※G1にはシフト作成月の年月の1日目が入る
を使用しており、自動で月曜日が出るようになっています。
この場合何か方法はありますでしょうか。
2025/09/13(土) 20:36:09.20
>>200
以前に同じ質問された方ですか?
以前に同じ質問された方ですか?
2025/09/14(日) 05:47:29.55
203名無しさん@そうだ選挙にいこう
2025/09/14(日) 06:58:01.52 やめたら?
自作自演
自作自演
204名無しさん@そうだ選挙にいこう
2025/09/14(日) 17:44:01.79 シートを別ブックにコピー、それを印刷しようとすると、1ページに収まっていたモノが収まらなくなってしまいます。
・列の幅
・行の高さ
・印刷範囲
・用紙サイズ
・余白
・拡大/縮小
・dpi
全部一緒なのに何故こうなるのでしょうか?
ちなみに元ブックと別ブックを作成したパソコン・プリンタが違うのは関係ありますか?
・列の幅
・行の高さ
・印刷範囲
・用紙サイズ
・余白
・拡大/縮小
・dpi
全部一緒なのに何故こうなるのでしょうか?
ちなみに元ブックと別ブックを作成したパソコン・プリンタが違うのは関係ありますか?
205名無しさん@そうだ選挙にいこう
2025/09/14(日) 18:48:24.30 >>204
ページレイアウト表示は?
ページレイアウト表示は?
2025/09/14(日) 19:58:27.84
プリンタが違うとダメ
PDFにする
PDFにする
2025/09/14(日) 20:08:22.73
2025/09/14(日) 20:10:32.74
>>202>>207をコピペ判定係に任命する
2025/09/14(日) 22:58:49.14
難しい!
足し算引き算させる程度にしか使ってないよぉ
主にぱ○んこの収支表みたいな
でももう3年くらいぱち○んぽやってないから
xlsx全然使ってないや
足し算引き算させる程度にしか使ってないよぉ
主にぱ○んこの収支表みたいな
でももう3年くらいぱち○んぽやってないから
xlsx全然使ってないや
2025/09/15(月) 04:03:59.31
このスレに来る必要はないだろ
2025/09/15(月) 05:34:00.56
足し蟹。
212名無しさん@そうだ選挙にいこう
2025/09/15(月) 07:04:32.32 いや、このくらいがこのスレのレベルだろ
2025/09/15(月) 08:01:09.66
>>209
税金含めた収支計算したら?
税金含めた収支計算したら?
214名無しさん@そうだ選挙にいこう
2025/09/15(月) 15:52:34.72 >>207
なんですぐわかるの?
なんですぐわかるの?
2025/09/16(火) 19:41:02.63
2025/09/16(火) 22:12:11.04
おすすめ
Microsoft Excel 2010
よく使用するアプリ
Microsoft Excel 2010
よく使用するアプリ
217名無しさん@そうだ選挙にいこう
2025/09/18(木) 18:01:41.92 >>198
gpt-oss-120bで添削してもらって、気に入らないところは一部手動で修正しました。バグは治ってる気がするが、あんまテストしてないのであしからず。
=LET(
getnearanglevalues,
LAMBDA(dat,target_angle,
LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度) 、1 列目が角度、2 列目が値のテーブルから、検索角度(1次元まで)に最も近い角度の行の値を返す関数",
cmt_,"検索対象データ群は 1 列目=角度、2 列目=対応する値。3列目以降は無視されます。",
r, ROWS(dat),
c, ROWS(target_angle),
idxy, MAKEARRAY(r, c, LAMBDA(y,x, y)),
idxx, MAKEARRAY(r, c, LAMBDA(y,x, x)),
anglex, INDEX(dat, idxy, 1),
valuex, INDEX(dat, idxy, 2),
target_anglex, INDEX(target_angle, idxx, 1),
diff, ABS( MOD(anglex - target_anglex + 180, 360) - 180 ),
idxnear,BYCOL(diff, LAMBDA(col, XMATCH(MIN(col), col,0))),
TRANSPOSE(INDEX(dat, idxnear,2))
)
),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600, C1:C4)
)
gpt-oss-120bで添削してもらって、気に入らないところは一部手動で修正しました。バグは治ってる気がするが、あんまテストしてないのであしからず。
=LET(
getnearanglevalues,
LAMBDA(dat,target_angle,
LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度) 、1 列目が角度、2 列目が値のテーブルから、検索角度(1次元まで)に最も近い角度の行の値を返す関数",
cmt_,"検索対象データ群は 1 列目=角度、2 列目=対応する値。3列目以降は無視されます。",
r, ROWS(dat),
c, ROWS(target_angle),
idxy, MAKEARRAY(r, c, LAMBDA(y,x, y)),
idxx, MAKEARRAY(r, c, LAMBDA(y,x, x)),
anglex, INDEX(dat, idxy, 1),
valuex, INDEX(dat, idxy, 2),
target_anglex, INDEX(target_angle, idxx, 1),
diff, ABS( MOD(anglex - target_anglex + 180, 360) - 180 ),
idxnear,BYCOL(diff, LAMBDA(col, XMATCH(MIN(col), col,0))),
TRANSPOSE(INDEX(dat, idxnear,2))
)
),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600, C1:C4)
)
218名無しさん@そうだ選挙にいこう
2025/09/18(木) 18:55:37.79 やっぱり文系馬鹿
219名無しさん@そうだ選挙にいこう
2025/09/18(木) 19:13:17.25220名無しさん@そうだ選挙にいこう
2025/09/19(金) 01:37:48.23 JR総合職50代なら年収1000万プレーヤーの可能性あるね
2025/09/19(金) 02:46:07.91
>>217
idxyやidxxはない方が見通しが良い
=LET(
getnearanglevalues,
LAMBDA(dat,target_angle,
LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度) 、1 列目が角度、2 列目が値のテーブルから、検索角度(1次元まで)に最も近い角度の行の値を返す関数",
cmt_,"検索対象データ群は 1 列目=角度、2 列目=対応する値。3列目以降は無視されます。",
angle, INDEX(dat,,1),
value, INDEX(dat,,2),
diff, ABS(MOD(TRANSPOSE(angle) - target_angle + 180, 360) - 180),
idxnear,BYROW(diff, LAMBDA(row, XMATCH(MIN(row), row,0))),
INDEX(value, idxnear)
)
),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600, C1:C4)
)
idxyやidxxはない方が見通しが良い
=LET(
getnearanglevalues,
LAMBDA(dat,target_angle,
LET(
cmt,"getnearanglevalues(検索対象データ群,検索角度) 、1 列目が角度、2 列目が値のテーブルから、検索角度(1次元まで)に最も近い角度の行の値を返す関数",
cmt_,"検索対象データ群は 1 列目=角度、2 列目=対応する値。3列目以降は無視されます。",
angle, INDEX(dat,,1),
value, INDEX(dat,,2),
diff, ABS(MOD(TRANSPOSE(angle) - target_angle + 180, 360) - 180),
idxnear,BYROW(diff, LAMBDA(row, XMATCH(MIN(row), row,0))),
INDEX(value, idxnear)
)
),
cmt,"上で作った関数を使用する",
getnearanglevalues(A1:B3600, C1:C4)
)
222名無しさん@そうだ選挙にいこう
2025/09/19(金) 04:03:42.42223名無しさん@そうだ選挙にいこう
2025/09/19(金) 07:47:27.31224名無しさん@そうだ選挙にいこう
2025/09/19(金) 12:39:53.11 文系馬鹿が知ったかして作ると、こんな簡単なものでもバグだらけのものになってしまう好例
226名無しさん@そうだ選挙にいこう
2025/09/20(土) 20:21:33.11 もちろん!初心者らし
今、A1〜A5に数字が入っていて、その合計をA6に表示したいのですが、どうやってやればいいか分かりません💦
ネットで「SUM関数」というのを見つけて「=SUM(A1:A5)」と入れてみたのですが、なぜか「#NAME?」と表示されてしまいます…。
ExcelのバージョンはMicrosoft 365です。
関数の入れ方が間違っているのでしょうか?
どなたか教えていただけると嬉しい😃
今、A1〜A5に数字が入っていて、その合計をA6に表示したいのですが、どうやってやればいいか分かりません💦
ネットで「SUM関数」というのを見つけて「=SUM(A1:A5)」と入れてみたのですが、なぜか「#NAME?」と表示されてしまいます…。
ExcelのバージョンはMicrosoft 365です。
関数の入れ方が間違っているのでしょうか?
どなたか教えていただけると嬉しい😃
2025/09/20(土) 20:24:04.03
228ChatGPT
2025/09/20(土) 20:38:36.67 >>226
A1-A5の数字が実は1000円とか文字も含めていたりとか?
A1-A5の数字が実は1000円とか文字も含めていたりとか?
229名無しさん@そうだ選挙にいこう
2025/09/20(土) 20:52:14.25 >>226
A6を選択して「数式→オートSUM→合計」を押せ
A6を選択して「数式→オートSUM→合計」を押せ
230名無しさん@そうだ選挙にいこう
2025/09/20(土) 23:24:49.10 =IF(A1="A",VLOOKUP(B1,表1範囲,2,FALSE),VLOOKUP(B1,表2範囲,2,FALSE))
231名無しさん@そうだ選挙にいこう
2025/09/21(日) 00:33:33.33 やっぱりこのスレで質問するのは馬鹿ばっか
2025/09/21(日) 00:52:55.51
>>231
馬鹿の代表は引っ込んでろ
馬鹿の代表は引っ込んでろ
233名無しさん@そうだ選挙にいこう
2025/09/21(日) 01:48:17.27 >>232
事実を書かれて悔しい馬鹿
事実を書かれて悔しい馬鹿
2025/09/21(日) 07:42:58.10
その人病に侵されてる(頭)人だから、おさわり禁止
異常者特有の粘着性
224とか231とか目障りだけどこっちが我慢するしか無い
異常者特有の粘着性
224とか231とか目障りだけどこっちが我慢するしか無い
235名無しさん@そうだ選挙にいこう
2025/09/21(日) 08:30:44.06 我慢我慢
2025/09/21(日) 09:07:28.33
理解出来ない暗号みたいなの書かれて
ムカつくのはわかるけど
わかったふりして
暴言書いて
恥ずかしいだろ
死ねばいいのにね
ムカつくのはわかるけど
わかったふりして
暴言書いて
恥ずかしいだろ
死ねばいいのにね
2025/09/21(日) 09:59:06.57
自覚ないみたいだけどお前もそいつと同類だからな
2025/09/21(日) 11:20:03.38
>237
>>237
>>237
2025/09/21(日) 11:49:19.88
手が震えてアンカがダブった
2025/09/21(日) 14:03:36.29
2025/09/21(日) 14:23:56.79
その人病に侵されてる(頭)人だから、おさわり禁止
異常者特有の粘着性
目障りだけどこっちが我慢するしか無い
異常者特有の粘着性
目障りだけどこっちが我慢するしか無い
244名無しさん@そうだ選挙にいこう
2025/09/21(日) 18:33:53.98 文系馬鹿と書かれている理由がまだわからんのか
算数馬鹿と書けばわかるか?
算数馬鹿と書けばわかるか?
2025/09/21(日) 20:37:59.57
バグの内容について書けよ
246名無しさん@そうだ選挙にいこう
2025/09/21(日) 21:38:25.772025/09/21(日) 21:46:00.21
馬鹿はなぜ馬鹿と呼ばれるかわからないから馬鹿なんだぜ
2025/09/21(日) 22:50:30.97
はやくバグについて書けよ
もしかして書けないの?
もしかして書けないの?
249名無しさん@そうだ選挙にいこう
2025/09/22(月) 08:53:06.28 まだ?
250名無しさん@そうだ選挙にいこう
2025/09/22(月) 19:29:47.49 バグについて書けよ
もしかして書けないの?
もしかして書けないの?
251名無しさん@そうだ選挙にいこう
2025/09/23(火) 02:44:07.12 これなんでエラーになるんだろ?
・エラーにならない
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,"↑ is not 2",val))))
・エラーになる
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
・エラーにならない
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,"↑ is not 2",val))))
・エラーになる
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
252名無しさん@そうだ選挙にいこう
2025/09/23(火) 04:30:38.71253名無しさん@そうだ選挙にいこう
2025/09/23(火) 05:03:38.06 >>251
=LET(val,{1;2;3},
TOCOL(HSTACK(val,SCAN(0,val,LAMBDA(init,val,IF(val=2,"↑ is 2","↑ is not 2"))))))
Ifを評価する前に、列数が未確定な計算はできないってことのような気がする。
=LET(val,{1;2;3},
TOCOL(HSTACK(val,SCAN(0,val,LAMBDA(init,val,IF(val=2,"↑ is 2","↑ is not 2"))))))
Ifを評価する前に、列数が未確定な計算はできないってことのような気がする。
254名無しさん@そうだ選挙にいこう
2025/09/23(火) 05:05:42.41 列数じゃなくて行数やった
2025/09/23(火) 07:50:34.98
arrの長さを変えないために足りない方の穴埋めに#N/Aが使われる
この#N/AをIFが評価して、以降#N/Aエラー
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(TAKE(arr,-2),1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
→ {1;2;#N/A;"↑ is 2";3}
この#N/AをIFが評価して、以降#N/Aエラー
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(TAKE(TAKE(arr,-2),1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
→ {1;2;#N/A;"↑ is 2";3}
256名無しさん@そうだ選挙にいこう
2025/09/23(火) 07:56:45.49 最近FILTERXML関数というものを知って、使ってみようとしています。
やりたいことは、セルに入っているXML形式のデータから、特定の値を取り出すことです。
例えば、セルA1に以下のようなXMLが入っています:
<items>
<item>
<name>りんご</name>
<price>100</price>
</item>
<item>
<name>バナナ</name>
<price>80</price>
</item>
</items>
この中から、1つ目の商品の名前(「りんご」)だけを取り出したくて、
以下のように書いてみました:
=FILTERXML(A1, "//item[1]/name")
でも、結果が「#VALUE!」になってしまいます…。
XMLの構造が悪いのか、XPathの書き方が間違っているのか、そもそもFILTERXMLの使い方が違うのか、よく分かりません💦
ExcelのバージョンはMicrosoft 365です。
FILTERXML関数を使うときの注意点や、うまくいく書き方など、教えていただけると嬉しいです🙇♀
やりたいことは、セルに入っているXML形式のデータから、特定の値を取り出すことです。
例えば、セルA1に以下のようなXMLが入っています:
<items>
<item>
<name>りんご</name>
<price>100</price>
</item>
<item>
<name>バナナ</name>
<price>80</price>
</item>
</items>
この中から、1つ目の商品の名前(「りんご」)だけを取り出したくて、
以下のように書いてみました:
=FILTERXML(A1, "//item[1]/name")
でも、結果が「#VALUE!」になってしまいます…。
XMLの構造が悪いのか、XPathの書き方が間違っているのか、そもそもFILTERXMLの使い方が違うのか、よく分かりません💦
ExcelのバージョンはMicrosoft 365です。
FILTERXML関数を使うときの注意点や、うまくいく書き方など、教えていただけると嬉しいです🙇♀
2025/09/23(火) 08:54:08.27
これだとエラーにならないのが不思議
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(ROWS(arr)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
IF条件式で配列の値を参照したときだけ、true値とfalse値との要素数違いでエラーになるみたいなんだ
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(ROWS(arr)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
IF条件式で配列の値を参照したときだけ、true値とfalse値との要素数違いでエラーになるみたいなんだ
2025/09/23(火) 09:27:08.75
2025/09/23(火) 09:28:38.31
シンプルに
=IF(1=2,{1;2},1)
=IF({1}=2,{1;2},1)
=IF(1=2,{1;2},1)
=IF({1}=2,{1;2},1)
2025/09/23(火) 09:54:03.89
REDUCEの中で最初にNAが出てくるのはこんな感じで、
=IF({1}=2,{1;2;3},{1;2})
その後#N/Aで埋まるのはこんな感じか
=IF({#N/A}=2,{1;2;3},{1;2})
=IF({1}=2,{1;2;3},{1;2})
その後#N/Aで埋まるのはこんな感じか
=IF({#N/A}=2,{1;2;3},{1;2})
2025/09/23(火) 10:10:02.11
=IF({1;2}=2,{1;2;3},{4;5})
262名無しさん@そうだ選挙にいこう
2025/09/23(火) 11:10:38.51 >>258
それ目的から乖離してます
それ目的から乖離してます
263名無しさん@そうだ選挙にいこう
2025/09/23(火) 13:02:04.14 >>257
どうしても動かしたい場合は、以下のように書けない事もないけど、どうせなら、アルゴリズムを考えるのに頭を悩ませた方が良いと思う。
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
どうしても動かしたい場合は、以下のように書けない事もないけど、どうせなら、アルゴリズムを考えるのに頭を悩ませた方が良いと思う。
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
2025/09/23(火) 13:19:09.20
>>262
問題の原因は一言で言うとIFが配列数式になってるから
問題の原因は一言で言うとIFが配列数式になってるから
265名無しさん@そうだ選挙にいこう
2025/09/23(火) 13:56:50.01 なるほど>>263でいけるならこうするのがよさそうだ
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(INDEX(arr,ROWS(arr),1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(INDEX(arr,ROWS(arr),1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
TAKEの結果が配列なのが原因か
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(INDEX(arr,ROWS(arr),1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(INDEX(arr,ROWS(arr),1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
TAKEの結果が配列なのが原因か
266名無しさん@そうだ選挙にいこう
2025/09/23(火) 14:16:12.27 vstackって遅いから、勉強には良いかもしれんけど、大量の計算には向かないって言っとくよ。
2025/09/23(火) 14:40:49.13
@演算子
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(@TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(@TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(@TAKE(arr,-1)=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(@TAKE(arr,-1)=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
268名無しさん@そうだ選挙にいこう
2025/09/23(火) 14:53:43.67269名無しさん@そうだ選挙にいこう
2025/09/23(火) 20:35:32.53 改良してみた
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,"↑ is 2",val),VSTACK(arr,val))))
=REDUCE({1},{2;3},LAMBDA(arr,val,IF(SUM(TAKE(arr,-1))=2,VSTACK(arr,val),VSTACK(arr,"↑ is not 2",val))))
270名無しさん@そうだ選挙にいこう
2025/09/24(水) 10:09:40.89 ありがとうございます
271名無しさん@そうだ選挙にいこう
2025/09/29(月) 18:57:54.11 ファイルを開いた当日から5営業日後の日付を表示したいのですが数式を教えてください
よろしくお願いします
よろしくお願いします
272271
2025/09/29(月) 19:04:23.54 出来ました
ありがとうございました
ありがとうございました
2025/09/29(月) 20:29:07.77
どういたしまして
お役に立てて光栄です
お役に立てて光栄です
274271
2025/09/29(月) 22:08:41.64 >>273
今後とも変わらぬご愛顧賜りますよう何卒よろしくお願い申し上げます
今後とも変わらぬご愛顧賜りますよう何卒よろしくお願い申し上げます
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 富山県砺波市の給食が話題を呼ぶ [少考さん★]
- 「追加申し込みは受け付けない」陸上全国大会 締め切り勘違いで中高生8人出場できず 日本陸連が見解 [夜のけいちゃん★]
- 【しゃぶ葉・食べ放題】配膳ロボで「高価格帯コースの肉を横取り」問題再燃 他の客の商品を取ると音声通知、運営元が全店導入へ ★2 [煮卵★]
- 【テレ朝】太田光、テレビを「オールドメディア」と言うネットの声に憤慨「お前が何言ってんの !? 」 [少考さん★]
- 盗品窃盗グループ関与したとして逮捕されたパキスタン国籍の男性を不起訴処分 東京地検立川支部 [♪♪♪★]
- 3歳と5歳を連れてアフガニスタンへ 母子旅YouTuber、退避勧告の指摘に「外務省とかあてにならないです〜」と反論 [爆笑ゴリラ★]
- 🏰(・o・🍬)んなたんたなん(🍬・o・)🏰
- 【亜月ねね】エッヂ民、ねねさん家の前に派遣されてる国営セコムにビビって何も出来ずに午後になってしまう… [841411289]
- 『眉毛』ってどうやって整えるの? [904880432]
- ザコ「ジャンプスケアはホラーじゃない!」 ←じゃあさ
- 女子「チー牛って結婚できなくて消えるはずなのになんで絶滅してないの!?😭」 [153490809]
- 【動動】高市トカゲ、ついに働いて働く!官邸に新聞、テレビ、記者などを呼びつけてメディアコントロールに成功! [511393199]