Excel総合相談所 140
レス数が1000を超えています。これ以上書き込みはできません。
関数を使って集計する方法を教えていただけないでしょうか。
index matchの組み合わせもしくは、sumifもしくはindex match sumifの複合で表示させたいです。
画像の出荷と書かれたセルに関数を入れて集計したいです。
集計は参照シートの黄色で書かれた「販売+その他出荷」の合計を表示したいです。
sumifでは縦の計算になってしまい、横の足し算が出来ない印象です。
上の数字はmatchを使った際の引用条件になると思い入れました。
説明わかりづらくてすいません。関数を教えていただけないでしょうか。
具体例のエクセルは簡単に書いてますが、実際に書くエクセルはデータが膨大なものです。
なぜかindexもうまく引用できていませんでした。
https://d.kuku.lu/ca513f39a8 >>2
前スレの232の方ですね。自分を含む数名から回答を受けて解決したのではありませんか? VBAで質問です。
何十列もある表で不要な列を大量に削除したいと思っています。
Range("A1,N1:U1.....").entirecolumn.deleteといった感じで手作業、つまり目で列を確認してコードを書くしかないのでしょうか??
分かる方お願いします。 いやそんなことはない
でも何十くらいなら目チェックの方が早いし安いな それでいいので教えてください。
どうやって不要の列を決め打ちするので? 列削除だけのコード書くくらいなら手動で消していけばいいじゃん に対してのそれで良い なのか
いやそんなことはない に対してのそれで良いなのか それだと不要な列を目でみて1をつけないとならないので意味がナッシングです。 >>10
> 不要な列の条件が分からないのにどうしろと
表に見出し(1行目)があるのでそれを見ながら削除しています。あ、この見出しの列は不要と判断します。不要な見出しをリスト化したら可能とかありますか? 目で見て比較しないとわからないような曖昧なリストしか作れない場合は無理 >>2>>14
様、大変長らくお待たせ致しました
以下がコードになりますのでご査収下さいませ
よろしくお願い致します
記
Sub Macro1()
不要な列を削除するための見出し = "aaa"
最終列 = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 最終列 To 1 Step -1
If Cells(1, i).Value = 不要な列を削除するための見出し Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub >>16
ありがとうございます。
試してみたいと思います。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
1つの列にデータがずらっと並んでいて、そこから重複していないデータだけを別のシートに抽出する方法を教えてください
りんご
りんご
バナナ
みかん
みかん
が並んでいる場合、バナナだけを抽出したいです >>18
作業列を作る
ifとcountifで重複ありを0、重複なしを1
もう1列作業列を作る
ifで1の場合rowを返す
もう1列作業列を作る
rowをrank付けする
別シートの列に
1
2
3
4
とか入力する
indexとmatchでrankを参照 >>18
countifで1を出す
その後、フィルタで抽出してコピーペースト
https://i.imgur.com/ewsZgaG.png if(countif(A:A、A1)=1、MAX($B$1,B1)+1、“”)
で上から1、2、3…って数字つける
それからIndex MATCH 被ったし回答し直すか、と思ったらまた被って俺は
https://i.imgur.com/BDIp5Ig.png
ただこのやり方ってなんとなくindexmatchがなんとかなりそうな気はする ルックアップでりんごとかのカズ数えて一個しかない奴を再度ルックアップすれば良い もっとよくやるのは
countif($A$1:A1,a1)
で初登場を集める方法 すみませんが、VBSはちょっと、、、
VBAを使わない方法はないでしょうか。 >>25
>>4の方?
・全体をコピーして行列を入れ替えて貼り付け
・元見出しだった1行目はA列になるので、A列で不要な見出しでフィルタリング
・フィルタしたものを削除し、フィルタ解除
・もう一回行列入れ替えて貼り付け
これ以上は難しいかな >>27
すごい。
明日試してみたいと思います。ありがとう。 >>18です
方法教えてくれてありがとうございます
作業列作って計算するしかなさそうですね
365のunique関数が欲しい… 作業列無しで関数で出す方法もあるけどメタクソ長い関数になるから作業列作ったほうが楽 >>18
2007以降ならリボンのデータから重複の削除アイコンかある >>31
リンゴとか2つ以上あるやつはリンゴ1つにするのではなく、無視する方法を知りたいようだぞ >>16
> >>2>>14
> 様、大変長らくお待たせ致しました
> 以下がコードになりますのでご査収下さいませ
> よろしくお願い致します
>
> 記
>
> Sub Macro1()
> 不要な列を削除するための見出し = "aaa"
> 最終列 = Cells(1, Columns.Count).End(xlToLeft).Column
> For i = 最終列 To 1 Step -1
> If Cells(1, i).Value = 不要な列を削除するための見出し Then
> Columns(i).Delete Shift:=xlToLeft
> End If
> Next
> End Sub
すみません、1行目の不要な列を削除するための見出しが1個だけではなく何個もある場合はどうしたらいいでしょうか? select Case cells(1,i).value
case"aaa","bbb"
columns(i).delete shift:=xlToleft
end select >>35
>select Case cells(1,i).value
>case"aaa","bbb"
>columns(i).delete shift:=xlToleft
>end select
見出しのリストも自動で作りたいのですが、可能で紹介? >>36
見出しのリストがどんなもんかわからん
ccc
ddd
のようなリストがほしいだけなら見出し行をコピーして行列置換でペーストすればいいだけだぞ >>37
>>>36
>見出しのリストがどんなもんかわからん
>ccc
>ddd
>のようなリストがほしいだけなら見出し行をコピーして行列置換でペーストすればいいだけだぞ
上のコードを動かすために見出しのリストが必要なんですかい。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A1〜F1のセルには1〜4いずれかの数字が入ります
G1のセルには自分の指定した数字(10〜20の範囲内)を入れます
G1の値になるようにA1〜F1の組み合わせを全て書き出す方法を教えて下さい 1ファイル12 Sheetで一年間のデータを管理しています。
1月〜12月がそれぞれ1Sheet〜でSeet1月〜Sheet12月、Sheetは1日〜月末まで日々のデータです。
これとは別に同ファイルに、1Sheetに1月〜12月までの表を12ヶ月分並べたもの(Sheet年間)があるのですが
月ごとにデータを入力したら、こちらのSheetの、該当日にも入力されているようにするにはどうやればいいのでしょうか? 書き忘れました
【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel 2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否 >>43
何をどう組み合わせてG1の値にしたいのか例を書いてくれ 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
以前下記のExcelからメール作成するフォーマットをここで教えてもらい便利に使ってました
マクロ実行でB4がTO、B5がCC、B6が件名、B7が本文に入力されてメール作成画面が開きます
ところが会社の中国人が使いたいと言うので渡したところ
中国語のWindows10だと件名と本文が文字化けします
中国語等の外国語のWindows PCでも文字化けしないようにできますでしょうか
Sub createMail()
CreateObject("Wscript.Shell").Run _
"mailto:" & URLEncode(Range("B4").Value) & _
"?cc=" & URLEncode(Range("B5").Value) & _
"&subject=" & URLEncode(Range("B6").Value) & _
"&body=%FF%FE" & URLEncode(Range("B7").Value)
End Sub
Function URLEncode(ByVal strOrg As String) As String
With CreateObject("ScriptControl")
.Language = "JScript"
URLEncode = .CodeObject.encodeURI(strOrg)
End With
End Function >>46
ありがとうございます
最低でもA1〜F1には1以上の数字を必ず入れます
G1は(A1+B1+C1+D1+E1+F1)の合計になります
例えばG1が11の場合、(A1+B1+C1+D1+E1+F1)のパターンを全て知りたいです すみません、解決しました
以前教えてもらったMODとROW関数とフィルタで出来ました 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】はい
【4 VBAでの回答の可否】 可
色んなデータがあるサイトでピンポイントで一つのデータをスクレイピングしたいんですが、
そのデータがソースで毎回30行目で固定されてるんで、
行指定でデータ吸い取れたら良いんですが、やり方がわかりません。
お願いします。 >>50
HTMLソースを文字配列に読み込んで30番目を使う >>35
caseの後のaaa、bbb………を別のシートにリスト化のような感じになっていたらcaseのあとに全部書く必要はなくないでしょうか?やり方を教えてほしいで。、 >>53
worksheetfunction.matchと
case is 構文
エラー処理も必要 >>47
中国語の環境がないから何とも言えないけど・・・
UTF-8になっているから逆に文字化けするのがおかしい気がする
メールソフトがutf-8に対応していないと思う。多分
メールソフトを変えてみると解決するかもしれない
メールソフトを帰るのが無理だと、中国語(euc-cn)などにエンコードすればいいかもしれないけど、すげー大変そう
>>53
sheet1のa1:a5がリスト。
findの返り値はsetしないと使えない事に気づくのに3分かかったわ
Sub Macro1()
最終列 = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 最終列 To 1 Step -1
不要な列を削除するための見出し = Cells(1, i).Value
Set result = Sheets("sheet1").Range("a1:a5").Find( _
What:=不要な列を削除するための見出し, LookAt:=xlWhole)
If Not (result Is Nothing) Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub >>55
どこでUTF-8になってると分かるのでしょうか? >>56
テキトーな文字をエンコードして、それで検索したら大体分かるよ
考えてみたけど、中国語への変換は中国人に中国語で検索してもらうと見つかるかもしれない >>47
ユニコードには表現方法がいくつもあって、ワークシートの文字列をVBAで扱う時はUCS-2形式のユニコードが使われるから、これをUTF-8形式に変換しないと基本的には文字化けする
具体的な方法は知らんけど、ADODB.StreamオブジェクトのCharsetプロパティでできるかもしれない ワークシート上の文字列をUTF-8に変換する関数
これでも文字化けするなら、さらに16進数に変換しないとだめかも
Function UTF8(text As String) As String
With New ADODB.Stream
.Open
.Type = adTypeText
.Charset = "UTF-8"
.WriteText text
.Position = 0
.Type = adTypeBinary
.Position = 3
UTF8 = .Read
.Close
End With
End Function 補足
ADODB.Streamを使う時は参照設定で「Microsoft ActiveX Data Objects x.x Libraryを追加
バージョンは2.5以上ならどれでもいいはず > "&body=%FF%FE"
BOMだけパーセントエンコードがUTF-16LEになってる >>47です
>>57
すみません意味分かりません
>>58
>>61-62
その方法だと使うPC全てExcelのVBAでADODB.Streamオブジェクトを
使えるようにしなければなりませんよね?
>>63
そこを下記のようにsubjectの行と同じように変更し
自分の日本語Windows PCで中国語でニーハオとB6とB7に入力して
実行したら件名は文字化けしないけど本文だけ文字化けしました
"&subject=" & URLEncode(Range("B6").Value) & _
"&body=" & URLEncode(Range("B7").Value)
元々の
"&body=%FF%FE" & URLEncode(Range("B7").Value)
だと本文も文字化けしません ならそれでもう使えるだろ?
目的を明確にしてから質問してくれよな VBAでSUBTOTAL関数を使って2つの列の合計を別のセルに出したいです。非表示部分も合計されて出てしまいます。可視セルのみの合計を出したいです。よろしくお願いします。 >64
結果報告とはありがたい
>>66
オートフィルタがないとうまく動かないかもしれない
https://i.imgur.com/9xwKziG.png <<67
オートフィルターメソッドのことですか?一応オートフィルターメソッドは使ってます。ありがとうございました。
<<68
初めて見る関数です。調べてみたいと思います。ありがとうございました。
なにぶん初心者なんで分からない事だらけで困ってます。 >>72
不等号の向きを間違えました。すみません。 >>70
サブトータルよりアグリゲートよく使ってるわ >>76
オワコンって訳じゃないけど
・範囲が見えない、うまく使わないと重くなりやすい。
・範囲が見えない、計算ミスの可能性が出やすい
・計算式が複雑になると見づらくなる
そもそも作業列の方が使い勝手がいいかなーとは思う >>78
そこはケースバイケース
例えば頻度にしても毎日使うならみやすさ犠牲にしてsumproduct()にしても良い
重くても月1なら我慢しても良い
個人的には見出しがある方が使い勝手が良い
重くてもミスが減るならPCを買い替えてもらうという選択肢もあるし、
多少ミスってもいいような資料ならPCは買い換えられないなど
更に言うならクラウドにするという選択肢もアリか
どちらが良いというものではないね =SUMPRODUCT((○○=☓☓)*(□□=△△),●●)
みたいなのはSUMIF INDEX MATCHの方がいいよね >>80
そうそう、多少重さは犠牲にしても見やすさを重視する方が良いと思う
SUMPRODUCTをよほど極めてるならSUMPRODUCT一本でもいいと思うけど、俺には無理だ sumifs(offset(MATCH、
のほうが追いかけられて好き >>85
表の最後に /END っていうセルをいれておいてMATCHでサイズを計る >>86
こういう事?
offsetってイマイチわからないわ
行数と幅は省略でもよさそうだけど
http://imgur.com/5SH4A7n.png 高さもSUMIFの範囲で指定してあるから省略でもよくね? >>87
そんな感じ
条件の範囲もoffsetにしとけば
表のサイズが変動しても対応してくれる SUMPRODUCTじゃダメなん?
=SUMPRODUCT(($B$3:$B$12=$B15)*INDEX($C$3:$G$12,,MATCH(C$14,$C$2:$G$2,0))) B:B、2:2
みたいな指定で、表のサイズが変わっても使えるようにしたい >>92
そうそう
そうしたくて色々やってるけど酔っ払ってて頭こんがらがってきた
出来てんのか出来てないのかわからん
SUMIFの合計範囲のOFFSETのMATCHのOFFSETのMATCHとか頭おかしくなるわ
http://imgur.com/2RO6kwE.png 何で表のサイズに縛られないテーブルの構造化参照を使わないの? 色々書いてもらって悪いが、酔っ払いはとりあえず消えてくれw
この質問に回答できる人よろしく
>>82
>>>80
>どうやんのそれ? 合ってるかどうかはしらんけど>>93が大体それだろう
ただこんなややこしい式は真似しないほうがいいと思う ユーザーフォームを呼び出すシート(Sheet1)のコンボボックスに
同ブック上別シート(Sheet2)のA1:A30項目をプルダウン表示させたいのですが
その際、重複項目と空欄を省いた状態で表示させるコードを教えて頂ける方いませんでしょうか
初心者には見当もつかず よろしくお願い致します いいけど、何をやりたいのか、その説明ではわからないので、書き直してもらえますか? >>96
一応>>83で書いたんだけど
>>93は自分で書いてて「誰がこんなん使うねん」って思ったわ >>43
>>49
正解は全組合せ4096の内216が該当でいいですか?
vbaだったらforの6回ネストで簡単なのですがmodで全組合せを羅列するのは難しくないですか?
mod関数での全組合せ表現の方法を教えて頂けたらありがたいです。 >>102
216組は>>48の例で示して頂いた合計11の場合の数です。 99 詳細ですが
Sheet1に必要項目をユーザーフォームで入力していきたいんですが
その際Sheet2のマスターデータのA列から選択してコンボボックスのリストに表示させたいのです。
Sheet2には重複項目や空欄項目がありリストに列を表示させると同じ項目や空欄が表示されてしまうので
なくしたいのです。 よろしくお願いいたします 表示形式のBとNとnって何ですか
=TEXT(NOW(),REPT(CHAR (SEQUENCE(127-32,,32)),SEQUENCE(,6)))
BBやbは仏歴のbみたいです >>104
どこかにコピペして、重複削除してからリストの範囲を再設定。
もしくはAdvancedFilterで引数UniqueをTrueで抜き出して、範囲を再設定。 >>43
解決しました。
INTも必要でした。
=INT(MOD(+ROW()/(4^n)-(1/4)^n,4))+1
n = 0 → 5>>43 99 Sheet2の内容は常に変わるので、コピーとかしたくありません
よろしくお願い申し上げます。 >>108
=UNIQUE(FILTER(Sheet2!A:A,Sheet2!A:A<>"")) 取得と変換使いこなしたいけどなんかいい解説サイトとかないかなオフィス田中は観てるけど違う角度の解説とかも参考にして学びたい >>111
正直、シリアル値がわかっていればもう得に勉強する必要もない
元になる値を変換しているだけ 知識はあるけど問題解決に結びつけられない人ってどこにでもいるよね 質問があります。
A1に数字を入力すると、
複数のセルを使って関数を駆使し、
結果として一つの数字がB1に出力されるような場合、
A1を0〜100の範囲で1ずつ増やしながら、
A1をx軸、B1をy軸としたグラフを作ることはできませんでしょうか。
A1とB1を表にするのは大変なので、表にせずにグラフ化したいのです。 >>115
グラフの種類を「散布図」にすれば希望の結果が得られると思う >>116
ありがとうございます。
しかし、質問の意図が伝わっていないかもしれません。
やりたいことは、例えば、
A1→100
A2→=A1*100
A3→=A1/100
A4→=A2+30
B1→=A2+A3+A4
とあった場合、
A1を0〜100まで一つずつ増やした場合の
A1をx軸、B1をy軸としたグラフを書きたいのです。
A1、A2、A3、A4、B1を0〜100個作って、
X、Y
0、30
1、230.01
2、430.02
3、630.03
...
と表を作ればグラフを作ることはできますが、面倒なので、
表を作らずに、A1に0〜100を代入した場合のグラフを作りたいのです。 >>117
残念ながらそういう機能は無い
ただ、グラフではなく2次方程式を解きたいだけならゴールシークって機能があるからそれを使えば良い >>115
1件1行に計算式をまとめられませんか?
A列は0から100までの数字を設定する列、
B列は1個目の計算式(A2の計算式)を、
C列は2個目の計算式(A3の計算式)を、
D列は3個目の計算式(A4の計算式)を、
E列は4個目の計算式(B1の計算式)を設定したらあとは簡単。 >>117
面倒ですか?
ならばVBAをつかって順にA1に値を挿入する方法を使えばあなたのやりたいことが実現できますよ
もっと複雑で面倒ですけどねwww ひとつ式を書けばコピペとかオートフィルでドラッグできるからそんなに面倒ではないと思う みなさんありがとうございました。
助かりました。
いったんグラフは諦めます。
>>118
ゴールシーク!
実はグラフとは別に、その方法も探していたのです!
非常に助かりました!! >>118 さんのゴールシークを調べていたら、
What-If分析のデータテーブルを使えばグラフ作れました!
みなさんありがとうございました!!
簡単すぎる!Excel最高! Control + ;
を入力したところ
通常であれば、 2020/07/26 と入力されるはずが、
7/26/2020 と入力される様になってしまいました。
どうすれば直りますか? >>127
それがどのExcelブックで行っても
7/26/2020
になってしまうのです。 新しく入社した会社の社内文章がほぼエクセル
エクセルで表入りの文書作る時って
学生時代から方眼紙コマ割り風に調整してから
枠指定して作成していたのだけど
今日、会社の先輩に注意されてしまった…
枠ごとに幅調整して作った方が良いのかね?
方眼紙に当て嵌めた方が、あとから行列追加も簡単だし
幅調整考えなくていいからと思ってたんだけど >>129
Excelのバグだった様です。再起動したらなおりました。 エクセルで表入りの「文書」?
どうでもいいんじゃね?
「データ」なら困るけど。 >>132
あんまりうまい言い方が判らなかったが
別に計算とか一切ない、エクセルじゃなくてもいいような
社内文章もエクセル形式管理なのよ
別ソフトで吸い上げや読み取りする訳でも無いから良いジャン
とか思ってたから注意されたのが意外だったのよね Excelのシートごとにレイヤー機能があったら社内文章がもっと楽に作れるのにな なぜ日本にはExcel職人はたくさんいるのにWord職人はいないのか Wordて始末書、顛末書、改善報告書の提出求められた時しか使わねえからな >>138
ショートカットがExcelと統一性に欠けるから覚えられない
故にExcelの方が楽 >>138
改行はshift+enterで段落変更がエンターったことを知ってる人すら1/10人もいないんじゃないか?
>>130
エクセル方眼紙は他のエクセルから数値を貼り付け出来ないから物凄い嫌われてる
些細なレイアウトのために使い勝手犠牲にする自己満足
最終的な用途が枠に手書きで書き込むんじゃなければセルの結合はやらないほうがいい
文字を中央に配置したいなら範囲を指定したあと書式設定で範囲内で中央っての使え いや、余計なお世話ですw
印刷するのに便利なのでこうしてるだけですから。他のエクセルからコピペできない?そんな問題あったらそもそも運用してませんから。 >>137
できないことはないけど一発じゃ無理
けっこう手間がかかって面倒だしスキルも必要
手作業で入力しなおすよりは間違いなくできるけど、ハードル高いよ >>138
基本的に文書はワードを使う派だけど、スタイル設定してる段落の書式変更したらスタイルが解除されるのは何とかしてほしい
組版はワードに任せろって言うのは理解できるし俺個人なら許容するけどこの段落は次のページに持って行けと言う上司の存在がある限り面倒で仕方ない >>144
どうやるんですか?教えて下さい
1ページに20軒ずつで、88ページ目まであります
店名、住所、電話番号、分類の部分だけを一覧表にしたいんですが そんな分量ならコピペしろよ、、、
>>146
>>>144
>どうやるんですか?教えて下さい
>1ページに20軒ずつで、88ページ目まであります
>店名、住所、電話番号、分類の部分だけを一覧表にしたいんですが >>142
単一セルのデータを結合セルに貼り付けるとエラー出ることも知らんとか…
同意してほしかっただけとか女の相談なら先に言えよ
先輩含めて普通の反応は>>135だ >>148
ほかに方法がなければコピペ88回も考えますが、一発でできるそうなので楽な方法を知りたいのです まだですか?
本当に困っているので早く教えてもらいたいです! >>137ですが、
まだ解決していないので引き続き、解決法を求めております
関係のない書き込みは無視しています >>130
正直完全な文書なら方眼紙の方が便利だけどね
方眼紙にしないとマスが増えると全部微調整しなおしって事になる
変更が無いものに方眼紙はカッコワルイけど、個人的にはどっちでもいいんじゃね?と思う
>>135
どっちでもいい派
早く作れる方で作れば良い
ただデータが多い場合は方眼紙は止めて欲しい
>>137>>157
サイトをa14にテキスト貼り付け。あとはrowとindirectの組み合わせでぴこぴこやれば行ける
https://dotup.org/uploda/dotup.org2211931.xlsx >>160
実はスクレイピングはサイトによって大幅にコードが変わる
実際取得したいのはナビタイムじゃなくて他のサイトだろう
具体的にはソースの位置はもちろん、連続アクセスにひっかかったり広告位置が変わったりロード待ったりで本当にサイト次第
あと最難関は恐らくajaxで、これが絡むとソースから取得出来ないので俺はやらん
正直、手動の方がコード書くより楽
どうしてもスクレイピングしたいなら、以下のページがまとまってるから一度勉強して地力を付けた方が良い
https://tonari-it.com/ie-setting-navigate/ 派遣の仕事でよくVBA開発の求人あるけどそれに就くには相当なスキルいるものですか?趣味程度で簡単なシステム作れる程度じゃ無理? >>162
体験で一回だけ行ったわ
質問に応えると、とりあえずset辺り使えるならまぁまぁ行けると思う。
以下、感じたこと
・零細企業に居候みたいな形で常駐
・クソみたいなクッソ古いコードをシコシコ保守
・大規模開発には全く向いてない言語ということを改めて気付かされる。予想以上にキツイ
・とにかく貧弱すぎるIDEが苦行
・その会社のvbaコード以外の知識は全くつかない。潰しは効かない
・どう考えてもシステムごと変えたほうがいいと思ってても死んでも言ってはいけない
・生産性はマイナス。存在価値はない
・在宅は一切ない
・上記の通りウンコすぎるので人がいない。供給がなさすぎるので給料はそこそこ良い
俺には無理だった >>163
詳しくありがとうございます。
趣味にしといた方がいいみたいですね! >>164
だねぇ
エクセルの補佐としてはめちゃくそ便利なんだけどね、vba
これを主体にすると、死 >・その会社のvbaコード以外の知識は全くつかない。
ホントそうなるよな。
Win32APIが使えるから、その気になれば大抵のことは出来ちゃうので、
他の言語じゃないと出来ませんって言えないし。 正社員も派遣も同じ。
今残っているのは客先常駐で保守案件のみ んなわけねーだろw
派遣ってなんかいつも焦ってるよな
>>168
>正社員も派遣も同じ。
>今残っているのは客先常駐で保守案件のみ >>161
それでいいのでナビタイムでやる方法を教えてください。 >>170
一発でできるんだけど
君がこっちに完全に丸投げレベルのスキルみたいだから
コピペ5回コースで妥協しておきな。
汎用性があることなら対応するんだけど
特定URLだけでしか動かないやつを
ゼロからこちらに投げられても
舐めんなとしか言いようがないというか。 >>173
全然足りないじゃん
ナビタイムのリストよく見てみ >>169
本当。一時本気でvbaで仕事を探したことがあるけど、正社員で客先常駐(実質派遣会社の正社員)か、派遣で客先常駐かしかない
仕事内容は一緒って意味だし、vbaだとキャリアなんて積めない
一番ひどかったのは、ローカルにあるC2DのPCをサーバーにしてAccess2003と2016が同時に快適に動くようにしてくれって要望
正社員と派遣、どっちが上じゃない、両方クソだった。俺は両方で体験入社したけど会社によるとしか言えない
これはカンだけど、タイミングさえ合えばまったり零細でのびのび帳票を自動出力するだけの仕事があると思う
>>170
ごめん、無理だった
酒のんで気分いいしやったるべ〜って試してたら3ページなのに速攻でアク禁食らった
まぁスクレイピングってこういう事なんですわって事が分かってくれればそれでいいと思う。ちなみにこのコードは修正中なので動かない
Sub foo()
For i = 1 To 3
sample ( "https://www.navitime.co.jp/freeword/?keyword=%E3%83%9E%E3%83%83%E3%82%AF%E3%82%B9%E3%83%90%E3%83%AA%E3%83%A5&p=" & i & "&type=spot&mode=", i )
Next
End Sub
Sub sample(url, ページ)
Set objIE = CreateObject("InternetExplorer.Application")
'IE(InternetExplorer)を表示する
objIE.Visible = True
Set objIE2 = objIE.Application
objIE2.navigate url
Do While objIE2.Busy = True Or objIE2.readyState <> 4
DoEvents
Loop
行で分割したソース = Split(objIE2.document.body.innerHTML, vbCrLf) '改行で縦一列に並べて分割っとかなんとか
For Each k In 行で分割したソース
Cells(, ページ) = k
Next
End Sub >>177
残念ながらもう俺は試す事ができない
俺は誰にでも公平に全力で回答するけど、俺が回答できないなら他に頼るか自分でがんばるしかない
俺は横柄な回答者にも公平に回答するけど、他に回答が付くかは分からない
最初に>>161で言った通り、サイトによってコードは大幅に変わるのでvbaでのスクレイピングは地力をつけるしかないよ
とりあえずナビタイムのスクレイピングはコードをもらっても意味がない、最初から目的のサイトでのスクレイピングを聞いたほうが良い もうちょい言うと、恐らく3ページじゃなくてUAで判定してるんだろうけど
そっちの方がはるかにキツイ 今日は無事Excelを起動できたが、
明日起動しようとしたらJPEGになってたらどうしよう・・。 ありがとうございます!
ナビタイムでもやってもらえないでしょうか? >>179
>もうちょい言うと、恐らく3ページじゃなくてUAで判定してるんだろうけど
>そっちの方がはるかにキツイ
んなわけねーべ
ちょっとウエイト入れたら余裕で全部スクレイプできたわ
しかもお前のコードだとちゃんとParseできねーぞ? >>184
ウェイトかければよかっただけとは、スマンかった
パースは後回しにして連続アタックがどうなるか試してみたんだ
その後アクセスするとエラーor画面真っ白
(chromeでも) セルに
=sum2
=int8
と入れると「0」が返ります
どのように評価されているのでしょうか?
=text0
は#NAME?エラーでした Win10のChromeとFireFoxとEdgeで試したけど20件ずつしか表示されない
どうやったら3ページ(600件ずつ?)になるんだ お前理解が周回遅れ以下。
88回ページネーションすんだよ。 >>187
セルアドレス
xlsxのシートなら、右端がXFDだから、セルSUM2もINT8も存在するよ 0.1秒間隔で全88ページ落としてみたけど別にアクセス制限なんかかかってないなあ
所要時間9秒程度だと連続アタックにはならないのか? 179は明らかに仕事できない人。ただの勘違いだろう。 よく見るとストア内のテナントとか社員研修施設とか混ざってんだけど
せめて分類コードか何かでフィルタリングしとかんと意味ないだろ
https://i.imgur.com/YvRaVUA.jpg データの重複がけっこうあるな
表記揺れで別の店と認識するのはしょうがないとして、住所が同じなのに座標が違うのはどういうことだ >>190
あーそういう事か、sum(8)と等価なのかとか色々考えてたわ、ありがとうスッキリ セルアドレスがたまたま関数名と同じになる列はけっこうたくさんあるね
バグが出た時にうっかり見落としそう
IF、OR、PI、ABS、AND、ASC、COS、DAY、EXP、INT、JIS、LEN、LOG
MAX、MID、MIN、MOD、NOT、NOW、ODD、ROW、SIN、SUM、TAN =IF1+(OR2+ABS3-AND4*INT5-LEN6+(MAX7+MIN8)+MOD9+NOT10)+ROW11+(SIN12+SUM13) 素人が理解できるよう説明する責任があるね、ここの人は。 88ページ読み込むのに70秒ぐらいかかる
Option Explicit
Dim httpObj As Object
Public Sub GetNAVITIMElist()
Dim p%, pp%, i%, r%, a$(), s$, t$, url$
Set httpObj = CreateObject("MSXML2.ServerXMLHTTP")
url = "https://www.navitime.co.jp/freeword/?keyword=%E3%83%9E%E3%83%83%E3%82%AF%E3%82%B9%E3%83%90%E3%83%AA%E3%83%A5&type=spot&from=freeword.spotlist&p="
pp = Int((Val(Split(GetUrl(url), "(1/")(1)) + 19) / 20) - 1
For p = 0 To pp
a = Split(GetUrl(url & p), " class=""")
For i = 1 To UBound(a)
s = a(i)
t = Replace(Replace(Split(Split(s, ">")(1), "<")(0), "<", "<"), ">", ">")
Select Case Split(s, """")(0)
Case "candidate_link": r = r + 1: Cells(r, 1) = t
Case "address_name": Cells(r, 2) = t
Case "phone_area": Cells(r, 3) = "'" & t
Case "spot_category_name": Cells(r, 4) = t
End Select
Next
Next
Set httpObj = Nothing
End Sub
Function GetUrl$(url$)
httpObj.Open "GET", url
httpObj.Send
Do While httpObj.readyState < 4
DoEvents
Loop
GetUrl = httpObj.responseText
End Function 検索結果をよく見ると、名前にも住所にも「マックスバリュ」が入ってない項目がいっぱいあるんだけど
いったい何を見せられてるんだ? >>207
すげえ。
これ分かるのにどれくらいかかりました?VBA歴何年位ですか? DOMつかってないし
ボタン押してないし
まいいんだけどね 何でマックスバリューとカンケーない奴らがたくさん混じってんだよ!邪魔だ! >>205
xlsxやcsvファイルでなくて、Webサイトの特定文字列なんかを
Excelでやるなら、こんな感じ。
Web Scraping In Power BI And Excel Power Query
https://datachant.com/2017/03/30/web-scraping-power-bi-excel-power-query/ それ素人が理解できますかね?
質問、理解してます? 単純なスクレイピングはWEBクエリより自分で書いた方が早いまである
価格comの詳細検索を一気に落としてExcelのオートフィルタで機種選びとかよくやってる 色々試したあげくapi使えば一瞬で終わるなんてことも Web上のpdfファイルはPower Queryで読み込める模様
(スキャナ読み画像pdfを除く) 少なくともExcelでスクレイピングしようなんて考えるやつはセンスが無い >>223
pythonでスクレイピングしてもやることは>>207と大差ないよ
Xpathの使いやすさに違いはあると思うけど、pythonは環境構築と出力が手間になるので総合的にはvbaと労力は大差ない
個人的にはVBAの方が楽
個人的にはchrome拡張が非常に便利と思う。
https://blog.tanebox.com/archives/645/ 1ページ1秒弱とか遅すぎる
もっと早くできないものか できる
パース処理に無駄な所が二箇所
ページごとじゃなくて全ページ処理する
半分の時間になったわ処理 httpオブジェクトを88個作って一気にGETすれば1秒で終わる
と妄想してみる 鯖側の仕様でGETで1秒待たされるのがどうしようもないね
たった1800件ならパース処理の無駄を省いても時間は大差ない
こんなもんか?もっと短縮できる?
Public Sub GetNAVITIMElist()
Dim p%, i&, r%, a$(), s$, url$
Set httpObj = CreateObject("MSXML2.ServerXMLHTTP")
url = "https://www.navitime.co.jp/freeword/?keyword=%E3%83%9E%E3%83%83%E3%82%AF%E3%82%B9%E3%83%90%E3%83%AA%E3%83%A5&type=spot&from=freeword.spotlist&p="
For p = 0 To Int((Val(Split(GetUrl(url), "(1/")(1)) + 19) / 20) - 1
s = s & GetUrl(url & p)
Next
a = Split(s, " class=""")
For i = 1 To UBound(a)
s = Split(Split(a(i), ">")(1), "<")(0)
Select Case Split(a(i), """")(0)
Case "candidate_link": r = r + 1: Cells(r, 1) = s
Case "address_name": Cells(r, 2) = s
Case "phone_area": Cells(r, 3) = "'" & s
Case "spot_category_name": Cells(r, 4) = Replace(Replace(s, "<", "<"), ">", ">")
End Select
Next
Set httpObj = Nothing
End Sub リストボックスとかコンボボックスで選択したものを
今現在選択しているセルに出力する方法を教えてください。
「リンクするセル」に何て書けば良いでしょうか。 >>233
書き込みたいセル=ListBox1.valueもしくはListBox.text
これは例示なので、ListBox1のところはオブジェクトのnameプロパティを指定 >>234
オブジェクトのnameプロパティは、どうやって見るのですか? >>235は撤回します。
下のように標準モジュールに書いたけどエラーでダメです。
どうしたらいいですか
Sub ボタン3_Click()
Dim shp As Shape
Set shp = Worksheets("sheet").Shapes("List Box 1")
ActiveCell.Value = shp.text ←これはエラー
ActiveCell.Value = shp.value ←これもエラー
End Sub >>236
拾い物の画像で悪いが、リストボックスをセレクトした時に出るAのとこの名前を入力してやればいけると思うよ
https://i.imgur.com/5O9xDTg.jpg >標準モジュールに
なんでやねん。
sheetでいいじゃん。
Sub ボタン3_Click()
ActiveCell.Value = Me.ListBox1.Value
End Sub
名前弄れるようにしたいなら
Sub ボタン3_Click()
ActiveCell.Value = Me.OLEObjects("List Box 1").Object.Value
End Sub >>236
captionかなんかだろって舐めてかかったらすげーめんどくさいなこれ
フォームコントロールとvbaはかなり相性が悪い。
Sub sample()
Set ctl = ActiveSheet.DropDowns("Drop Down 1")
Debug.Print Range(ctl.ListFillRange).Item(ctl.Value, 1)
End Sub
参考
https://excel-ubara.com/excelvba1/EXCELVBA436.html
言うまでも無いと思うけど標準機能使った方が良いと思う
https://dotup.org/uploda/dotup.org2215934.xlsx.html フォームコントロールはレガシーだからできるだけ使うな、ActiveXを使えってガイドラインに出てなかったっけ? >>240
数年前はActiveXサポート停止するからもう使うなよ〜って感じだったと思うけど、
そのサポートも伸びたみたいでかなりグダグダっぽい
>>241
マクロ入りファイルの配布は全くオススメできない
メール添付不可、先方で動かない、セキュリティソフトで排除など色々難関がある
googleドライブに突っ込んだらマクロ全部消されるレベル 添付不可っていつの時代の話だよ・・・。
batとvbsはいまだに不可だが。 余計なお世話。
配布したいってニーズは変わりませんよ。 >>243
今調べたら出来るプロバイダとできないプロバイダ、OKになったりNGになったりと混沌としているな
とりあえずgmailは解除されたらしい
>>244
とりあえず>>239のコードで動くぞ
俺はvbaファイルの配布でえらい目を見たから配布は一切しなくなったわ
何が面倒って相手がxlsxと認識してない事が一番キツイ 添付制限なんてzipで固めて送ればいいんじゃないの?エクスプローラでフォルダ扱いになるんだから別に面倒でもないし >>246
中を簡単に見られる形式は当然弾かれるよ
マイナーな圧縮方式なら割と通るけど逆に先方にそれを説明するのが面倒 >>248
それもやったけど引っかかる。zipはパスワード関係なくファイルを見る事ができる
パスワード付きzipをフォルダに入れて更にパスワードzipにすればok
本当にめんどくさい その程度の運用しか想像できないなら黙ってたら
時間の無駄です 牧野は頭にウンコしか詰まってねえ文字通りの胸糞悪いクソゴミ とても初歩的な事だと思うのですが解決しないので教えて頂けないでしょうか
00:00
01:10…のような4桁の時間形式を分かりやすく書くためにEXCELを使用したいのですが、
分単位の00、間の:、秒の00、を分けて別セルに組み合わせるようにすると、0が消えてしまいます。
https://i.imgur.com/vcKwTHq.png
00 : 01 を組み合わせてそのまま00 : 01を出せるようにしたいのですが…
書式設定を触ってみたのですが出来ませんでした。
宜しくお願いします。 >>253
すいません。書式を文字列でいけました。申し訳ございません。 時刻として扱いたいならTIMEVALUE(A1&B1&C1)で書式をhh:mmの方が扱いやすいんじゃないかな 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
特定の商品E5をA4〜A1000で探し特定期間7月をB4〜B1000で探し
一致するC4〜C1000を集計するのに下記のようなSUMIFS構文を利用してるのですが
これだと期間を変えるのにExcelの式を都度修正せねばならず時間かかり間違いやすいので
どこかのセルに7月なら7と入力すれば7月1日〜7月末までが範囲になるようにしたいです
前提として期間は1日〜月末ですが6月1日〜7月末のように複数月の場合もあります
どうすればよろしいでしょうか
=SUMIFS($C$4:$C$1000,$A$4:$A$1000,$E5,$B$4:$B$1000,">=2020/7/1”,$B$4:$B$1000,"<=2020/7/31) >>256
開始日と終了日を入れるセルを作って参照 >>256
複数月の増分を入れるセルも用意して
=SUMIFS($C$4:$C$1000,$A$4:$A$1000,$E5,$B$4:$B$1000,">="&DATE(YEAR(NOW()),どこかのセル,1),$B$4:$B$1000,"<="&DATE(YEAR(NOW()),どこかのセル+複数月の増分+1,1)-1) 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
*OSとExcelは年内にも更新予定。
ある設定をしたセルの書式だけ変える方法は有りますか?
例えば、フォントの色を赤にしたセルだけ青にするとか。
手持ちCDの曲目リストで区別のためフォント書式を色々分けていましたが、
作った当時の若かった頃はともかく、30年近く使い続けて年老いてくると
水色や桃色などの淡い色が読みづらくなってきました。
区別を保ったまま濃い色にしたいと考えています。 >>260
条件付き書式以外の方法で色を付けたセルの処理は、VBA使わないと無理 あるけどVBA不可じゃなぁ・・。
多分、
Sub a()
For i = 開始行 To 終了行
If フォントが赤のセル Then フォントの色を青
Next
End Sub
の5行で済むと思うけど、どうしてもVBA嫌か? >>257-258
すみません、夏休み前でバタバタしてて余裕無くて試せませんでしたが一段落して先ほど試しました
不等号と日付の組み合わせが思いつきませんでした
これでできました
ありがとうございました
>>259
複数月の増分の意味が分からないので試してませんが
この場合、問答無用で今年だけになりますよね 色を変えなくてもフォントを太くしたり大きくするだけでも読みやすくなる 書式で検索して一括置換はできるんじゃないの
既存の書式を検索したいならセルから書式取得する機能もあるし
ただ2007でできるかどうかは知らん 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ(VBAじゃないと無理ならがんばる)
【4 VBAでの回答の可否】 否(VBAじゃないと無理ならがんばる)
データをまとめる時にpdfでは公開されているのにcsvやxlsファイルでは配布されていないので
pdfのデータをコピーしてexcelに張ったところ
横一列になってしまいました
そこで区切りで見やすくはしたのですが、横一列のままです
これを5列(マス)ごとに改行したいのですが、どうすれば良いでしょうか?
A1〜A80あり、A1〜A5、B1〜B5....とズラしたいんです。 >>268
A2に
=OFFSET($A$1,0,ROW()+COLUMN()*5-7,1,1)
と入れてA2〜P6にコピー
最後に値貼り付け >>261-262
やはり無理ですか。
ところで、シンボリック形式の解説をオンラインで読めるところは無いですかね?
昔々、Multiplanを使っていた頃、ファイルが壊れてエラーが続発すると
一度シンボリックにして回復させていたことを思い出し、小さな表で試してみました。
(当時のMultiplanの説明書にはシンボリックの説明も書かれていた)
シンボリックファイルはテキスト形式なので、セルの色指定の数値を置換すると
変えられました。ただ、色指定の数値は分かるものの、水色系や桃色系など
自分で作った中間色の色成分(RGBなど)の定義部分が分かりません。
これが分かれば、成分値を変えることで変更できそうです。
尤も、太字・斜体字など他にもあるし、数百万行のファイルになりそうだな。 >>272
新しいExcelで読み込んで、xlsx形式で保存、拡張子をzipに変換するとワークシートの中身がすべてテキストファイルで取り出せる
色の定義はxl\styles.xmlというテキストファイルにそのまま16進数のRGBで書いてあるから一括置換すればいい
RGBから色相、彩度、明度を求めて明るくしたり暗くする方法はネット検索すれば方程式が出てくる >>273
ありがとうございます。
こんな形で保存されているのですか。読み解くには時間がかかりそう。
これについても、検索すれば説明文があるのかな。
それにしても、桁の低いところで生じる端数をround関数で整えたはずなのに、
データには違う値が記録されているとは・・・
例えば、roundで数値も1.0としたのに1.000001だとか。 っていうか書式で検索して全て選択して色変えればいいだけじゃねえの とりあえず現段階の方向として、シンボリックファイルで置換しようと思います。
色の定義方法は分析せず、新しい色を作って色番号を探り番号を置換することで。
お騒がせしました。 他人の助言まったく聞かないで無駄な遠回りして自己解決したのか
昭和のクソジジイすげーな 頭凝り固まった典型的な老害って感じ
自分が知ってる方法しかやる気がないし出来ないんだろう 2桁表示にしたく書式設定を「00」にしたのですが、
それらを組み合わせて=A1&B1&C1のようにすると、01が1になってしまいます。
1は01…のような状態で、そのままで別セルと結合する方法はないでしょうか? >>285
=TEXT(A1,"00")&TEXT(b1,"00")&TEXT(c1,"00") >>285
=TEXT(A1*10000+B1*100+C1,"000000")
3桁以上ある場合はまた教えて >>281
フィルターで色指定して出てきた色そのまま塗り潰したら?
まあ正直分類を色やフォントでやらない方がいいと思うけど それを人手で遣るんですか?
それは流石に道具の使い方間違っているとしか言えません >>260
一律背景色を濃くするマクロ
Sub foo()
濃くしたい濃度 = 10
For Each i In UsedRange
myColor = i.Interior.Color
r = myColor Mod 256
g = Int(myColor / 256) Mod 256
b = Int(myColor / 256 / 256)
If i.Interior.Color < 16777215 Then '白以外
r = WorksheetFunction.Max(r - 濃くしたい濃度, 0)
g = WorksheetFunction.Max(g - 濃くしたい濃度, 0)
b = WorksheetFunction.Max(b - 濃くしたい濃度, 0)
i.Interior.Color = RGB(r, g, b)
End If
Next
End Sub
動かしてから気がついたけど、本当は濃くしたいじゃなくてコントラストを強くしたいんだろうな〜
無理だな〜 あのー使えない糞コード邪魔何で貼らないでもらえます 一度色を全部消して条件付き書式で入れ直した方がよかったりして >>295
なんらかの法則があれば条件付き書式の手作業で可能
法則がなければVBAじゃないとキツイ >>297
>>>295
>なんらかの法則があれば条件付き書式の手作業で可能
>法則がなければVBAじゃないとキツイ
キツくてもいいので教えてください! >>260>>299
飲みながら回答したら全然違う回答してたわw
>例えば、フォントの色を赤にしたセルだけ青にするとか。
これが条件付き書式なら可能だけど、塗りつぶしなら無理だねぇ >>295
Excel4.0マクロは禁止されてないので、しばり的にはセーフだよね
例えば、Sheet1 の文字色薄い青のセルを青にしたい場合
1.Sheet1をシートコピー
2.コピー先シートA1で名前定義 名前は仮に色とでも =GET.CELL(24 , Sheet1!A1)+NOW()*0 これで、=色 でSheet1の同一アドレスの文字色No.が取得出来る
3.A1に、=IF(色=33, NA()) 表範囲全体に数式のみコピー
4.条件を指定してジャンプ->数式 論理値 で、文字色赤のセル以外が選択される -> 消去
6.全範囲を選択して、文字色を青に (エラー値で条件ジャンプで該当セルのみ選択できるけどその作業は不要)
7.コピー→Sheet1のA1を選択->形式を選択して貼り付け 書式、 空白セルを無視する
GET.CELL(24,Sheet1!A1)がセルの情報を取得するExcel4.0マクロで、24が文字色、薄い青は33
セルに直接入力は出来ないけど、現Excel2019でも、名前を介すと使用できる
Sheet1!A1の部分は相対参照で($がついたら消す)
太字、斜字はそれぞれ、24のところを、20、21に置き換える 戻り値は真偽値 マルチプランだのcell関数だのは老人会のカラオケ大会ででも話しててくれよ頼むわ早く隠居するか死んでくれ 盆休みだから見てるけどどのチャンネルもワイドショーやべえな
こんなの毎日毎日見てたら脳が衰えてる年寄りは洗脳されるわ
それにしたって日本人は知性無くなりすぎだと思う 知ってるとドヤ顔できるけど役に立ったことはない
たいがい作業列を作れば解決できるし Excel2019で、
ScreenUpdating = False にしても、CopyFromRecordset で勝手に描画する
という不具合が発生してるように見えるんですが、どうですか?
(もしくは ActiveChart.Axes を設定すると勝手に描画する、のいずれか)
具体的には別のシートに CopyFromRecordset を使っていて、そのシートを参照するグラフが表示中のシートにある
新しいデータを元に、ActiveChart.Axes を再設定する前(または設定しきる前)に、新しいデータがグラフに表示される
なので一瞬グラフが目盛の範囲外に吹っ飛んでから、正しい位置に補正される
Excel2013では起きなかった ていうかイミディエイトウィンドウで
Application.ScreenUpdating = False
?Application.ScreenUpdating
True
そもそも ScreenUpdating 自体を廃止? >>316
図形やオブジェクトが絡むと再描画されることが多い
理由は多分、単純に適用の範囲外かなんかだろう。誰か詳しい人が答えてくれると思う
何にしろ、図形を再描画しても
ScreenUpdating = False
自体はそのままなので図形を連続で描画でもしない限り、パフォーマンスにはそれほど影響しないはず
Sub foo()
Debug.Print ScreenUpdating
ScreenUpdating = False
Debug.Print ScreenUpdating
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 78, 162.75, 125.25, 121.5).Select
Debug.Print ScreenUpdating
ScreenUpdating = True
Debug.Print ScreenUpdating
End Sub >>318
さんくす
イミディエイトウィンドウでプロパティを設定しても保持されないのか
しかし、
Sub foo()
ScreenUpdating = False
Debug.Print ScreenUpdating
ActiveCell = 1
Debug.Print ScreenUpdating
End Sub
プロパティは保持されるものの、シートに「1」って表示されるw
そういうもんでしたっけ? >>319
本来は更新しないはずなんだけど、経験上・・・
・めちゃくちゃ軽い処理(>>319とか)
・オブジェクトが絡む
・保存
確かこの辺りで再描画された記憶がある
まぁ、元々が重い処理を軽くするためだけのようなプロパティなので
あまり深く考えなくていいんじゃないかな
俺はなんで再描画されるかなんて考えていないぞ
再計算の方は結果が変わるからかなり慎重に使うけど >>322
あと、ScreenUpdatingについての根本的なお話
http://officetanaka.net/excel/vba/speed/s1.htm
ScreenUpdatingが不要になるような記述が好ましいかな、と思います おまえら根本的なところが間違ってるぞ
まず>>319はプロパティが設定できてない
まったく無関係なVariant型の変数にFalseを代入してるだけ
正しくはこう
Sub foo()
Application.ScreenUpdating = False
Debug.Print Application.ScreenUpdating
ActiveCell = 1
Debug.Print Application.ScreenUpdating
End Sub
そして、プロセスが終了するとこのプロパティは自動的にTrueに戻る仕様だから画面も書き換わる 【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
マンションの駐車場の抽選を行います。
駐車場は45ヵ所あり,世帯数も45ヵ所あります。
駐車場を希望しない世帯がある反面,2台目を希望する世帯もあり,申込数は45を越えます。
まず,駐車場を希望するすべての世帯に必ず1台目の駐車場は割り当てられます。
全世帯に1ヵ所ずつの駐車場が割り当たったあと,残った駐車場に対して,2台目を希望する世帯で抽選します。
(1) 駐車場には1〜45までの番号が振ってあります。
(2) 世帯は201〜205,・・・1001〜1005の45世帯です。
(3) 全世帯に,希望する駐車場所(駐車番号)を希望順位が高い順に1〜45まで記入して貰います。
(4) 各世帯にRAND関数などで,1〜45まで抽選順位を付けます。
(5) その順位によって,その世帯が希望する順位の高い番号の駐車場を割り当てます。
例年は,全世帯から一人ずつ集まり,くじ引きを行い,その数字が小さかった人から,希望する駐車場の場所を選んでいきました。
(3)のようなこともしていなかったため,その場で「う〜ん,どこがいいかしら?あら,ここがよかったんだけど,もう決まっちゃってるのね」と数分悩む方もいて,無駄に時間がかかっていました。
今年度は三密を避けるために,例年のように抽選会が開けないため,(4)の方法で順位を付けることになりましたが,
(5)においては,(3)の内容が記入された用紙を見ながらアナログで割り当てていくことにしました。
この(5)と(3)を関連付け,自動的に行うことはできないでしょうか? 追記
(3) 全世帯に,希望する駐車場所(駐車番号)を希望順位が高い順に1〜45まで記入して貰います。
については,
希望順位1位=駐車場番号23
希望順位2位=駐車場番号11
希望順位3位=駐車場番号30
・・・
ということです。 >>326
もちろん可能だけど2千件のデータを入力する手間を考えたら手作業でやった方が早いんと違う?
入力ミスの確認とかどうやるつもりよ >>328
レス,ありがとうございました。
入力の手間,確認の手間を考えると,手作業の方が速いかもしれませんね。
それはそれとして,後学のためEXCEL(VBAを含む)での手法をお聞きしたいです。 >>326
・45世帯から用紙を徴収して、RAND順に並び替える
・駐車場の一覧で空きを見ながら順に決定していく
・2台目移行希望の人は2周目で同じように決めていく
一回キリだしエクセルに入力するよりも早いと思う そもそも
> (3) 全世帯に,希望する駐車場所(駐車番号)を希望順位が高い順に1〜45まで記入して貰います。
とか面倒くさすぎるだろw
1〜3位 すまん、途中で書き込んでしまった
そもそも
> (3) 全世帯に,希望する駐車場所(駐車番号)を希望順位が高い順に1〜45まで記入して貰います。
とか申請する方も面倒くさすぎるだろw
1〜3位ぐらいまで書いてもらって割り当てきらなかったらこっちで割り当てますってやった方がいいと思うよ 目的と手段を取り違えてるね
そもそも避けたいのは三密だろうが
Excelでやる必要はない どうせ人気な場所は集中するから
9区画にわけて順番つけてもらって、並びは管理人がしたらいい 紙をシャッフルしてRANDの代わりにすればいい
そうすれば1枚目から手作業で埋めていけばいい
それに45番まで書かない人とか絶対にでてくるから面倒くさくなるぞ 書込み中・・・
ERROR!
ERROR: レスアンカー多すぎます! (Anchor count:6)
問い合わせID:mevius/5c31c3e45f8eefaa
ホスト:118.206.30.125.bf.2iij.net
名前: 名無しさん@そうだ選挙にいこう
E-mail: sage
内容:
皆さん,レス,ありがとうございました。
>>330
今回は,まさしくその手順で行うことになっています。
>>332-333
駐車場所によって利便性や快適性などが異なるため,1〜45まで決めて貰うことになりました。
私もその点には賛成しました。
>>335
これまでも,抽選会に参加せず「完全委任」する方は,数台×6区画に分けたうちの,6区画にのみ1〜6位の希望順位を付けて貰っていました。
そういう方は,区画内の場所には細かくこだわらないため,それでよいのだと思います。
>>331
紙の方が速いようですね。
>>334
今年度は三密を避けたいという理由ですが,来年度以降も無駄に時間がかかる抽選会は勘弁して欲しいと思っています。
それで,EXCELでできれば,その方法を提案できると考えました。
今回は紙の方が速いとわかりました。
ただ,単純に後学のために手法を知りたいと思ったまでです。 >>329
まず45*46の二次元配列と、45項目の駐車場配列を用意
二次元配列の片方が46項目あるのは部屋番号を一緒に入れておくため
乱数で順番を決めて第一希望から順に選び、駐車場テーブルに部屋番号を入れてく
あとはその繰り返し
プログラムとしてはきわめて単純
データ入力が最大のネック 47項目にして希望台数も入れた方がいいかな
希望台数をカウンターの代わりにして選ばれるたびにデクリメント
そうすれば、駐車場を使わない人の処理を別に作らなくて済む 住民アンケートもexcelでやりそう
統計の知識無しで エクセルを立ち上げたときにユーザーフォームのみが立ち上がって
起動メニューのようにしているのですが、
起動するときユーザーフォームの前に一瞬、ブック内のエクセルのシートがチラついて表示されてしまいます。
これは仕方のない事なのでしょうか? >>339
> 二次元配列の片方が46項目あるのは部屋番号を一緒に入れておくため
老害すぎるw
Type 希望駐車場
部屋番号 As Integer
駐車場(1 To 45) As Integer
End Type
Dim 希望(1 To 45) As 希望駐車場
ってやるべきだろ
※ 型名/変数名はテキトー 部屋番号をintで持つのも違う気がする
stringじゃない? そんなのを配布すんの?
やり方わからないってジジイの対応方法考える方が時間かかるわ >>339-340
>>343
>>344
教えていただいたことを手掛かりにしてやってみます。
ありがとうございました。 >>326
A列に部屋番号
B列に希望順位
C列に希望注射場番号
D列に「乱数込みの希望順位」として =B2+RAND()
タイトルと45x45なので2026行できるはず
出来上がったら「乱数込みの希望順位」列でソートする
続いて目測で上から順に決定していく
自動判定の計算式を考える時間より目測のほうが遥かに早い
当選の〇を入力したら以下は斜線が引かれるなどの判定を補助する書式設定とかをつけた方がいいかもね >>351
>続いて目測で上から順に決定していく
>自動判定の計算式を考える時間より目測のほうが遥かに早い
>当選の〇を入力したら以下は斜線が引かれるなどの判定を補助する書式設定とかをつけた方がいいかもね
E列に一位判定用を作ってフィルタとかでいいんじゃないか
E2=B2<>B1
TRUEでフィルタすれば当選者一覧になるはず >>350
sumproductの代わりに今時は何を使ってるんですか? >>350
フィルタで絞った可視セルで、複数の条件に一致する件数をカウントするのはどうすればいいですか?
COUNTIFSのフィルター集約分だけをカウントしたい。 フィルタならsubtotalだろうに
でもaggrigateはエラーを無視して合計出せるというので助かる EXCEL2020でCtrlキーを押しながら複数の行を選択しながら行の幅を変えようとするとフリーズします。Ctrlキーを離して通常幅を変更すると問題なくできます。
対応方法はないでしょうか? お世話なります。VBAを勉強中のものでして
=IF(C2>=80,"優",IF(C2>=70,"良",IF(C2>=50,"可","不")))
これを
Function test(c) As String
If c >= 80 Then
test = "優"
End If
If c >= 70 Then
test = "良"
End If
If c >= 50 Then
test = "可"
Else
test = "不"
End If
End Function
とすると、74でも「可」しかでなくなりました。
知恵をお貸し頂ければ幸いです。 >>365
条件達成したらexit function それか逆から判定するかselect caseで場合分けするか >>365
end ifの次のifで条件もう1回通らせてるからね
elseにしないと >>365
Function test(rng As Range) As String
Dim c As Long
c = rng.Value
If c >= 80 Then
test = "優"
ElseIf c < 80 And c >= 70 Then
test = "良"
ElseIf c < 70 And c >= 50 Then
test = "可"
Else
test = "不"
End If
End Function
シート上で"=test"を入力して得点が入力されているセル番地を入力すれば答えが出る >>365
VBA の Select Case でいいかと
Function test(c) As String
Select Case c
Case Is >= 80
test = "優"
Case Is >= 70
test = "良"
Case Is >= 50
test = "可"
Case Else
test = "不"
End Select
End Function >>369
可読性悪いかねぇ
Function test(rng As Range) As String
Dim c As Long
c = rng.Value * 1
If c >= 80 Then
test = "優"
ElseIf c >= 70 Then
test = "良"
ElseIf c >= 50 Then
test = "可"
Else
test = "不"
End If
End Function >>371
変数名の具体性によるんじゃない?
変数名がcならifの方が読みやすいかもだし、
変数名がTensuとかなら長いし具体的だしSelectの方がいいとか >>371
言われてみればANDはいらないな
コード3行目の最期の * 1 は意味があるの? >>372
確かに
>>373
=test(90)が動かなくてちょっと色々いじってたんだ、*1は間違い。
一つ聞こうと思ってたの忘れてた
longじゃなくなんでrangeを引数にしてそこからvalueを取っているんだろう
Function test(c As Long) As String
If c >= 80 Then
じゃダメなんかな >>374
最初に質問者のコードを見たときにエラーが出るんじゃないかと思って変えた
でも、後から変える前の奴を試してもちゃんと動いたから、いらない変更だった
個人的には自分の奴のほうがわかりやすいとは思うけど >>365
Function test(c) As String
test = WorksheetFunction.HLookup(c, Array(Array(0, 50, 70, 80), Array("不", "可", "良", "優")), 2, True)
End Function
俺からも
可読性いいでしょw Function test2(c) As String
test2 = Choose(1 - (c >= 50) - (c >= 70) - (c >= 80), "不", "可", "良", "優")
End Function
可読性を損なわず、もうちょっと短くできたよw test = Mid("不不不不不可可良優優優", c \ 10 + 1, 1) test = Mid("不可良優",1 - (c >= 50) - (c >= 70) - (c >= 80),1) test=IIF(c>=80, "優" , IIF(c>=70 , "良" , IIF(c>=50 , "可" , "不"))) >>365
その書き方だと得点の高い方から判定するとおかしくなる
50点以上なら80点でも100点でもみんな可になってしまう
こういう時は低い方から判定すればいい
Function test(c) As String
test = "不"
If c >= 50 Then test = "可"
If c >= 70 Then test = "良"
If c >= 80 Then test = "優"
End Function >>381
いまだにこんなコーディングするアホがいるのか?w 皆様ありがとうございます。
様々なレスがついて驚きました。
やはり書き方は千差万別なんですね。
関数ばかり触ってきたのでIFのネストが癖になっており
IF〜End IF , IF〜End IFでSelect Caseのような分岐ができると
ばかり思っていました。
ElseIfを知り、無事に(?)自身のなかでの問題が解決しました。
レスをしていただいた皆様、本当に感謝します。 因みになんですが、>>378 を試して動いたことに驚きなんですが
原理を解説していただけると幸いです。
MIDで何をどう抜き出しているのかさっぱりで…。 別にIFのネストは問題なくできる
書き方が悪いだけ 初心者です
初めて書き込みます
毎日にその日の取引先をプリントアウトし、事前にある定められた((取引会社名)(送り先)約100)に該当するものを目視でチェックしマーカーを引いています。
物凄い時間がかかり何とかならないかと思っています
該当する取引先だけ背景が色を変えるとか
最悪、該当する取引先だけ抽出できないでしょうか? >>388
取引先をプリントアウトし→詳細に書いて
該当するものをチェックし→詳細に
いつもの完成形は何? その日の取引先名称、送り先名称、日付やら品名やら取引番号などのデータ
一覧から
予め決められた取引先名称or送り先名称があるところをわかるようにしたい
今は一覧をプリントアウトして、いちいち人力でその該当する取引をチェックしています 完成形というか一覧に手書きのチェックだけです
手書きのチェックは面倒ではありませんが、片手に別紙で100もの取引先名称と送り先名称を確認しながら、プリントアウトした一覧にチェックを入れています どんな作業してんのか全然わからん
説明下手すぎかよ http://www.onnet.co.jp/wp/wp-content/uploads/-e1433306608865.png
例えば、この表を例にでも、、、
予め決められた約100ものリストから該当する得意先と出庫置場であれば
この表の行のカラーを変えるとか該当するものだけ抽出できればいいわけです
勿論、この表をexcelで扱っての話 >>396
エクセルの一番左端に1とか2とか書いてありますよね?
それを「行(ぎょう)」と言います
その1とか2とか書いてあるところを左クリックします
クリックした行全ての色が変わりましたね?
エクセルの上の方にペンキマークと▼マークがあると思います
ペンキマークの右側の▼マークを左クリックしてください
沢山の色が出てきました
好きな色を選んで左クリックしてください
これで完成です システム作った部門に脳ミソが1グラムでも入ってたら
“エクセルに出力”ボタンつけるよね… ひとつ人力で行の色を変えろと?(笑)
例えば
予め定められたリストとして
(得意先) (出庫置場名)
金沢商店 山下倉庫
渡辺エンジニア 木沢倉庫3
以下50 以下50
の表もあるとします
できれば、この表にある得意先や出庫置場に該当するところだけ、396の表の行を変えたいもしくは抽出できればと思っています >>387
> 別にIFのネストは問題なくできる
できるできないじゃなくて見通しが悪くなるって話 >>388
お前みたいな奴に条件付き書式は使いこなせないから人力で色塗りな いくつか質問があるんだけんどまず1つ
A B C
1
2 あああ AAA 100
3 いいい BBB 200
4 ううう EEE 300
5 おおお AAA 400
6 あああ CCC 500
7 あああ AAA 600
みたいな元データがあるとします
=UNIQUE(A:A)
とすると先頭に0が出てきますが
=UNIQUE(INDIRECT("A2:A"&COUNTA(A:A)+1))
としないとダメ? >>408
ごめん、AA編集モードで書いたからズレた 膨大にあるのでマーカーでレ点をパッパッと付けていっているだけなので、綺麗さは求めませんが、、、
一覧用紙で欲しいのです(笑)
モニターに抽出されたものであればそれを見て手でチェックするという方法でも、100倍効率があがると思っています 2つめ
A B C
1
2 あああ AAA 100
3 いいい BBB 200
4 ううう EEE 300
5 おおお AAA 400
6 あああ CCC 500
7 あああ AAA 600
この元データの集計表をテーブル化しないでうまい事作りたい
左端は
=UNIQUE(INDIRECT("A2:A"&COUNTA(A:A)+1))
上は
=TRANSPOSE(UNIQUE(INDIRECT("B2:B"&COUNTA(B:B)+1)))
でマトリックス表を作り
マトリの中身をどうすればいいか悩んでます
SUMIFSで何とかなりそうだけどテーブル化してないとA列が行増えたりB列にFFFみたいに新しい項目が入った時に対応出来ないんですよねぇぇぇ >>411
D列とか好きなところに
if(countif($A$1:A1,A1)=1、MAX($D$1:D1)+1、“”)
という式をつくってユニークなナンバーを振り当てて
マトリックスにはIndex( MATCH(
で項目つくる
中身はsumifsで、縦と横からデータとってきて集計する >>411
なんでテーブル化しないの?
共有化するから?
セル結合のため!とか言うなら別シート作りな テーブル化しないのはシステムから出てくるエクセルを文字列で張り付けて更新するから? >>412
折角だからスピル使いたいなぁぁぁ
>>413
テーブル化すると元データが増えたりすると謎のテーブルが勝手にどんどん増えていくんだもん
増えない方法ある? >>408
=UNIQUE(FILTER(A:A,A:A<>"","")) >>416
あっフィルター忘れてました
ありがとう テーブルのある列に入力されている値から、重複しないデータの入力規則を作りたくて困ってます、助けてください
現在は、VBAでDictionaryを使って登録していき、JoinでKeysをカンマ区切りして登録しています
Itemを使わないのがモヤっとするので、他に良い方法がありましたら御教授いただけると幸いです >>418
ほうほう
勝手に名前増えていかない?
あとFILTERの含むの所ってANDとかORって使えない?
配列っぽいから出来ないかな?
って思ったけどANDは*でORは+でいけたわ!
名前が勝手に増えていかなければこれでいこうかなあああああ!!!
ありがとうよ! こういう事よ
OFFICE TANAKAではスピルと配列は違うって言ってたけど考え方は同じだねえええ
ANDは*
ORは+
http://imgur.com/HJAswHc.png >>411
e2 =UNIQUE(FILTER(A:A,A:A<>"",""))
f1 =TRANSPOSE(UNIQUE(FILTER(B:B,B:B<>"","")))
f2 =SUMIFS(C:C,A:A,E2#,B:B,F1#) 上下にスクロールするのに、セル単位でのスクロールではなくスムーズにスクロールする機能は今も実装されてないのでしょうか?
ホイールクリックからスムーズにスクロールできますが使いづらくて・・・ >>423
ない
VBAでスクロールもどきなら簡単に作れる >>423
ScrollLockキーとか、PageUp/PageDownキーとか VBAで動作させる場合(視認性は別として)
IFネストで
条件1-条件2=処理1
条件1-条件3=処理2
とするのと
IF 条件1&条件2=処理1
IF 条件1&条件3=処理2
とするの
どちらが軽量で処理が早いですか? >>428
前者
VBAはショートサーキット無いから =SUM(C2:D2:D2)
ってどういう意味でしょうか? >>423
アニメーションをONにすればスムーズにはなるけど、
2/3セルとか、中途半端な位置で止めたいという事?
ていうか、何か困るのそれ。
ドラクエIの洞窟は、8ドット単位でも見づらかったけど。 >>419
UNIQUE関数とか
=UNIQUE(A:A,FALSE,FALSE)
後はピボットに放り込んで一意のリストを作るってのはたまにやるかな
でもvba使えて実現できているならそれでいいんじゃない >>435
VBAを使って自分好みのスクロールになるように作ればいい >>437
列幅を変更する事で擬似的にセルの途中で止まってるように見せかける事で実現出来なくもないのか >>438
ごめん、セルの途中で止まってるようにの意味がわからない すいませんエクセル2019ですが
数字を入力しているセルに追加で数式を入力する場合
f.2を押してカーソルキーでセルの頭までカーソルを動かし、”=”を入力するという事をやっているのですが
何故か”=”に限ってセルの頭で入力しもセル末尾に入力されてしまいます
[12345]
↑
ここにカーソルを持って来て”=”を入力すると
[12345=]
↑
何故かここに入力される
この現象が起きるのはテンキーの”=”だけでフルキーだと普通に入力されます
質問としては
1.何故この様な事が起きるのか? ひょっとしたらエクセルではなくATOKのお節介?(ただエクセル2010ではこのようなことは無かった)
2.回避方法はどうすればいいか?
3.あるいは、こんなマヌケな方法ではなく、一発で数字の入ったセルの頭に”=”をいれたり
”=”を入れ無くても計算式として認識する方法があるのか?
(”=”なしでいきなり”+54321”とか数式を入れると文字列に変換される)
よろしくお願いします 100 100 100 計
200 200 200 計
300 300 300 計
計を出すとき普通はSUMですがスピルだとどうやりますか? 質問です
ウィンドウ枠の固定で、固定した行より上の行、固定した列より左の列を表示する方法はありますか。
固定して表示する行と列は1行・1列ですが上の行や左の列に入れた内容を見たり修正したいので。 そうだな
B2をアクティブにしてウインドウの分割なり固定なりを選べばいい >>443
新しいウインドウを開く
あと、カーソルキーで非表示部分までいけるよ 440
普通のキーボードならテンキーにイコールってないから、外付けのキーボードを使ってる?
あんまり普通じゃないから、そのキーボードのせいじゃないかな お世話になります。
A1 + B1 = C1
A2 + B2 = C2
の時、C列の1つでも5を超えるとき"×"が表示されるような
判定は関数で作成できますでしょうか?
無理であればVBAでも構いません。
何かヒントを頂けると幸いです。 {=IF(AND(C:C<=5),"×","〇"}
自己解決しました >>448
COUNTIFS関数の検索条件として「5よりおおきい」を指定します。「=COUNTIFS(C:C,」に続いて『">5")』と入力し、【Enter】キーを押します。検索条件は「"(ダブルクォーテーション)」で囲みます。
つまり
=if(COUNTIFS(C:C,">5")>0,“×”,“ok”) >>448
Max(C:C)>5
をIFの中に入れれば良い
多分これまで出てるやつの中で一番可読性高い 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel365
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
工事シートと支払シートでそれぞれ入力しているシートがあり、工事Noからそれらを紐づけて
工事No1 工事名 支払1 支払額
工事No1 工事名 支払2 支払額
工事No2 工事名 支払1 支払額
というように二つの情報をマージするようなシートを新しく出力処理を考えています
For i = 1 To 工事件数
小項番数 = 1
For j = 1 To 支払件数
If 工事データ(i, 1) = 支払データ(j, 1) Then
.Cells(tempRow, 1) = 工事データ(i, 1)
.Cells(tempRow, 2) = 小項番数
小項番数 = 小項番数 + 1
.Cells(tempRow, 3) = 工事データ(i, 2) '物件名
.Cells(tempRow, 4) = 支払データ(j, 16) '業者名
.Cells(tempRow, 5) = 支払データ(j, 17) '支払金額
tempRow = tempRow + 1
End If
Next
Next
どちらとも1000件あるので、処理時に結構時間がかかってしまうのですが完了まで1〜5分かかります
1000件ループ中に、更に1000件回すからだと思うんですが、もっと効率的な処理ありませんか…? >>453
配列に入れる
不得手ならapplication.screenupdating=Falseをループ前に入れる あと支払い回数に上限があるならexit forでjのループを抜ける >>440
聞いたことないけど、キーボードの不調な気がする。「=」押すとendキーか↓キー辺りと合体してしまっているような
1.ATOKはしらんけどgoogleimeなどに買えてみると問題の切り分けが出来る
2.分解して埃を取るかテンキー買い替え。テンキーが独立したキーボードならドライバ再インストールなど
3.=ではなく+にしてみる。+sum(a1:b2)でも数式として認識してくれるよ。確か@でも行けた気もするけどかなりキモイからオススメしない >>453
もうちょい正確なデータをアップしてくれればかなり短縮できそうだけど、この辺で良い気がする
イベントを止める
Application.EnableEvents = False
再描画を止める
Application.ScreenUpdating = False
再計算を止める
Application.Calculation = xlCalculationManual
この3つだけでokです。
https://15g.jp/post-314/ >>440
そんなもんじゃないの?
俺もIndexMatch使う時、
=INDEX(C:C,MATCH(A:A,C:C,0))
↑ここにカンマ打ちたいのに、
=INDEX(C:CMATCH(A:A,C:C,0)),
↑何度やってもここに打たれちゃうことがある
しょうがないから、メモ帳に書いてからコピペしてるわ。
俺のは2013だけど、2019でも直ってないの? IMEをONのまま半角入力モードにしてると入力位置がずれることがある
この場合はIMEをOFFにすればたいてい直る エクセルあるあるだな。
コマンドボタンがどこかにすっ飛んでいくとか、
ボタンを押下した状態の画像と、離した状態の画像が別の位置にあるとか、色々あるけど、
一番笑ったのは、何かファイルが重いな〜と思ったら、1万本の直線が綺麗に重なっていたこと。
どっから湧いてきたんだよwww 俺のエクセルはウインドウ枠の固定をしているシートだけ、マウスクリックを数回するだけで勝手に複数のセル範囲を選択してしまう
おそらく、SHIFTキーを押した状態になっているからだと思う
あと、画面電源オフからオンにするだけでCtrlキーが押しぱっなし状態になってwindowsを再起動をする必要が出てくる
エクセルを3回再インストールしたけど直らんから諦めているわ >>462
それハード的な故障だろ
さすがに買い替えろ >>463
パソコン本体かなとはうすうす感じてはいるんだけどな
ちなみに、キーボードとマウスは複数持っていて変えても同じ症状だから、それらは問題ない >>440
俺も似たような現象で困ってる
IME Onのまま「=123 …」って打ってから画面見たら「ほ123 …」ってなってるからIME Offにしてカーソルを「ほ」の後ろに持って行って Delキー と = キーを打つとなぜかカーソルが最後尾に移って「123 …=」ってなる
※ 「ほ」ってなってるのはかなタイパーだから >>448 に似たような状態なんだけど
列が離れてて加算した結果を判定ってできる?
A1 + C1 の結果が基準を超えた場合の判定 日付データを数値に変換する関数はありますか?
text(a1,"0")でも可能ですが、なんか他にないかなと >>442
あ、ごめん。そういやそうですよね><
リアルフォースのテンキーレス91キーと、リアルフォースの=キー付きテンキーを使ってます
https://www.realforce.co.jp/products/23U_WC0100/images/mainphoto.jpg
長年PC-98キーボードを使っていてどうしてもATキーに慣れないので
最近までコンバーター使ってPC-98キーボードを使ってたし
因みにPC-98キーボードはコレ(WINキー無しバージョン)
http://nkmm.org/yagura/kbd/m699/m699.jpg
どう考えてもこれの方が使い易いと思うが。特にテンキー側に=とカンマが無いのは許しがたい
=は一応キーアサインがあるので対応してるテンキーもあるが、カンマはどうやらシングルキーアサインが無いらしく
ATアーキテクチャだとどうやっても出せ無いっぽい >>447
ATでも一応テンキー側の=というキーコードはあるみたいで(ハード的には無いが)
これが原因かも知れません
フルキー側の数字キーとテンキー側の数字キーでキーコードが違うような物
ただエクセル2019でのみ発生するのが謎(97、10、19しか使ったことが無いが) >>456
ありがとうございます
> 聞いたことないけど、キーボードの不調な気がする。「=」押すとendキーか↓キー辺りと合体してしまっているような
エクセル2019のみの現象なので違うと思う。2010、97では発生しない
> 1.ATOKはしらんけどgoogleimeなどに買えてみると問題の切り分けが出来る
それもそうだw と言う事でやってみたけど同じ。つまりFEPは関係無し
> 3.=ではなく+にしてみる。+sum(a1:b2)でも数式として認識してくれるよ。確か@でも行けた気もするけどかなりキモイからオススメしない
おおっ求めていたのはコレだ!=より+の方が押しやすい位置にあるのでこれで全解決。
しかもリターン押すと自動的に=に変換される。素晴らしい とやってみたところで、別件でもう一つ謎の挙動を発見した
エクセル2019でいきなりテンキー側の−(マイナス)キーを押すと入力されずに「範囲選択の拡張」モードになる
所謂f.8を押したときと挙動が同じ
f.2を押した後にテンキー側の−を押すと普通に−で入力される
(f.2→f.8だと派に選択の拡張モードになる)
Lotus1.2.3互換で/キーでALTメニューが出るのは知っていたが、これって普通?
長年気付かなかったけど ショートカット系はテンキー側だと変わるよ
単純な例だと[ctrl]+[1]の書式設定はテンキー側だと出ない >>467
A1 + C1 = D1
A2 + C2 = D2
のようにして後は回答と似たようにすれば良いのでは
>>474
知らなかったけど、そもそもテンキーが無かった
暇なら仮想キーボードとか色々試してみるのもいいかもね 質問!
京都 25 →25
東京 65 25
大阪
福岡 69 69
長野 45 69
栃木 52 69
みたいにランダムに振られた数値で
隣接する数値があった場合に上の数字と同じになる
みたいなのがやりたいんだけど
関数やり方教えて! Aというファイルのシート1をコピーして別名ファイルBに貼り付けて作業用に使ってたんですが
今日からいきなり貼り付けのオプションで値貼り付けとかが出なくなりました
excelのオプション詳細設定のチェックボックスは入ってます
今までは普通にBシート1→Aシート1に貼り付け出来ていたのですが
コピー元と貼り付け先別々のファイルでも今まで貼り付け出来てたのが出来なくなったのはファイルA側で何かされたのが原因ですか?
毎日作業用にコピーしたファイルBをずっと使用してました
ファイルBでのコピーが何だか勝手にテキスト扱いになってる気がします・・・
excelのバージョンは詳しく覚えてないですが2013以降なのは間違い無いです
拙い文章ですいません >>477
A列が地名、B列がランダムな数字として
C1は=B1
C2は=IF(B2="","",IF(C1<>"",C1,B2))
C3以下はC2をコピペ 【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
例えば16枚のシールを3列に、できるだけ均等に貼り付けようとする時用に
A B C D E
1 元の枚数 列数 1列目 2列目 3列目
2 16 3 6 5 5
という表を作りたくて、ネットで見つけた式をもとにC2を
=IF($B2<COLUMN(A2),"",INT($A2/$B2)+(MOD($A2,$B2)>=COLUMN(A2)))
で右に式コピーして、これはうまくいきましたが、表の位置を↓のようにして式をG3に
E F G H I
2 元の枚数 列数 1列目 2列目 3列目
3 16 3 6 5 5
=IF($F3<COLUMN(E3),"",INT($E3/$F3)+(MOD($E3,$F3)>=COLUMN(E3)))
とすると1列目・2列目・3列目が空白になってしまいます。どう改変すればいいでしょうか?
よろしくお願いします。 >>479
ファイルのバージョンは?
xls形式ならxlsx形式にすると良い
なんか再起にxls形式でフリーズが頻繁に発生するようになっている気がする >>481
G3=IF($F3<COLUMN(A1),"",INT($E3/$F3)+(MOD($E3,$F3)>=COLUMN(A1)))
COLUMN(A1)はセル番地ではなく「1列目」の意味で使っている
COLUMN(B1)は「2」列目という意味のようだ >>484
おかげさまで成功しました。ありがとうございます!
>>482
すみません。もう少しちゃんと勉強します。 excelとワード2003がもう限界なんだけど、新しいのはバージョン何を買えば良いの?
月額とかは払いたくない
コスパ良いバージョンは何? >>486
googleスプレッドシートとかでもいいんじゃない?
無料だよ
https://docs.google.com/spreadsheets/u/0/
新しいのは2019。amazonの15000円
https://www.ama
zon.co.jp/dp/B07LBNQXF6
他にも中古で安いのは色々あるけど、海賊版などが多くてどれもオススメできない 質問に答えてなくて草
>>488
>>>486
>googleスプレッドシートとかでもいいんじゃない?
>無料だよ
>https://docs.google.com/spreadsheets/u/0/
>
>新しいのは2019。amazonの15000円
>https://www.ama
>zon.co.jp/dp/B07LBNQXF6
>
>他にも中古で安いのは色々あるけど、海賊版などが多くてどれもオススメできない >>489
やることによって違うので何とも言えないが
・家計簿ぐらいの利用でネットにも繋がっていない環境ならそもそも2003でも十分
・xlsxを使うなら2019。アップグレードが長く続くのでもっともコスパが良い >>486
Officeアプリにコスパなんて考え方は普通しないから、質問の意味がわからん
限界とはどういう状態のことか、2003では何ができなくて何をやりたいのか
そもそも今正規に買い切れるのは最新の2019しかない >>486の求めるパフォーマンスが何かわからんからコスパとか言われてもな >>488
エクセルとワードで1万くらいなら買取で払っても良い。
改造版じゃない2018とか2015とかなんでもいいが。
489は俺じゃない
>>491
簡単な関数は使いたい、phoneticとかifとか。
2003の挙動がもうめちゃくちゃになってきてる。パソコンを再セットアップリカバリしてもなおらないから
もう2003自体がWin10に対応していないとおもう。ワードもおかしいし。
>>492
2019以前のって買えないの?海賊版以外のやつ >>495
だからその「挙動がめちゃくちゃ」「ワードもおかしい」の部分を、もうちょっと具体的に書いて欲しいのよ
保証はないけど一応基本的な機能はWin10+2003でも使えるのを多くの人が確認してるから、原因がどこにあるのかをまず共有しないと質問に答えられない
とりま今から買える正規品は2019と365だけ
それ以外は海賊版か中古、運が良ければどこかのショップやオークションで長期在庫品が見つかるかも知れないってレベル >>495
もしIEをコントロールしてネットからデータ収集してるなら、マクロが正常に動かないのは新しいIEのせいだよ
Excelを最新にしても同じ >>494
2007からファイル形式が変わってxlsxになった
2003以前のxls形式はセキュリティ的に終わっているので、大半の人はxlsxを使っている
他の人とファイルをやり取りする時にはxlsx形式の方が都合が良い
自分のPC内で家計簿付けるだけなら、2003のxls形式でも何一つ問題はない
>>495
互換モードってのがあるからそれを試してみてはどうかな
https://pc-karuma.net/windows-10-apps-compatibility-mode/
それでも動かないなら2019で良いだろう >>496
挙動について
ワードはページが360ページあるんだけど、
箇条書きボタンを押して●や数字を表示させようとすると、10秒から20秒位ワードがフリーズする
その時にタスクマネージャーを見ると使用率が1%位から13%位まであがる
CPUのファンも高速回転する
エクセルのおかしい挙動は
データがたてに5000セル位分横に4列位あって、それが関係しているかどうかわからないが
この横4列のどれかのでデータをデリートとかで削除しようとすると、ワードのときと同じくフリーズして、CPU稼働率アップする
他には、
関数使った時に、うまくいくときと行かないときがある
それが俺の操作ミスなのか、バージョンがだめなのかって検証するのもだるいくらい頻繁に多くトラブルが起きる。
他には
Win10の2年くらい前のアップデートのときは、エクセルに文字を入れてエンターで確定させるとワードのときと同じ挙動が起きていた
去年のWin10バージョンアップをしたらそれではエクセルの文字入力エンターのトラブルは起きなくなった
>>498
互換性のタブがワードもエクセルのプロパティになかった
>>497
IEは使ってない 2003で困ることなんて、65536行までしか入らないくらいしかないけどな。 PCが低スペックなのが原因だったら2019買っても治らないんじゃないのかな。悪化するかも。 >>502
そういう単純な理由ならMicrosoft Office 互換機能パックを入れれば開くことは出来る
2018年についに公開中止になったけど、探せば見つかるし2003とかの人はまず入れてるんじゃ無いかな
すぐにセキュリティガー!とか言う人は必ずいるけど >>503
後、ファイルがおかしくなってるというパターンもある
その場合どのPCやオフィスで開いても同じ様な現象が出る
昔のエクセルはセルの書式設定の上限が決まっていて、上限を超えるとある日突然開け無くなると言う
致命的な「仕様」があったからな
救済方法も無いとか明らかに酷いけどMSは仕様だと言い張っていたし
長年コピーペーストを駆使して複数ワークシートを作成していたブックとかで起きやすい excelとwordだけほしいんだけど、2つでこんな高いの?
安いバージョンとかないもんなんこれ? その価格を払う価値が無いと思うのであればOpenOfficeやグーグルスプレッドシートを使うしか無い
ただ将来仕事で使うとかの予定があるのであれば間違い無く必要な投資と考えた方がいい
97や2003あたりは10年使う人も多かったし、2010でも未だに現役な人は多いから決して高くは無いと思うが ヤフオクで打ってるやつって入札いっぱいはいってるけどこれ使うとどうなるの? で2つ合わせて譲ってくれる人いないの?
七千五百円までならだす。 こいつの問題はPCがいかれてること
Excel新しいの買っても解決にならない
それ以前に大したことに使ってないみたいだけどな >>510
ヤフオク オフィス リスク
あたりでググって味噌 >>514
ぐぐったよ 中国人がどうのこうの
2013のパッケージとかかったらまずいの? excele2019の体験版ってないの?365って月学でしょ?いらんわ >>515
> 2013のパッケージとかかったらまずいの?
やってみたらいいんじゃね?
お前が捕まろうと損しようと俺には関係ないしw さっきから、高いだの旧バージョンはないかだの、うるさいなあ
高いと思うなら買わなきゃいい。
旧いのほしけりゃ、ジコセキニンでオクででも探せ >>499
Wordはあまり詳しくないけど・・・
>その時にタスクマネージャーを見ると使用率が1%位から13%位まであがる
i7 3770辺りの8コアでマルチスレッド非対応と仮定すると、1コアを限界まで使い切って頭打ちになっているかもしれない
全然違うかもしれない。
ただどういうPCにしろ、360ページは重すぎると思う
>互換性のタブがワードもエクセルのプロパティになかった
ファイルじゃなくてexcel.exeの方
https://i.imgur.com/1DbFWZV.png
>IEは使ってない
IEじゃない、マクロでIeをコントロールとして使っている場合。 >>507
それだけ便利で売れてるからね。正直、本気で使う連中なら15000円は安すぎる
>>521
古いバージョンが欲しくて、97を500円で買ったことなら
問題なく動いたよ 名前をつけたセル範囲の、特定のセルだけ参照する方法はありますか?
=名前(1)
みたいに配列っぽくアクセスできませんでしょうか。 >>526
なんとなくやってみたら出来。index()使う
※A1:A3=a1_kara_a3という名前が継いている
https://i.imgur.com/hBRwIpx.png キーないと買っても意味ないんだよね?
こんなの売っていいの? 97っていつのバージョンだよ
もっと欲に立つの紹介しろよ >>522
互換性モードをWin8とXpサービスパック3に変えてもだめでした
私のパソコンはi7 3770kです 2012年あたりに買いました メモリは16Gです
グラボはついていません SSD500Gです >>530
97の頃はライセンス管理がザルだったからコピーし放題
あとはわかるよね
牧野 ◆Vbs7gX72NY とやらがわざとなのか知らずにやってるのかは知らんけど害悪でしかない >>529
大体当ててる自信はあったけどドンピシャとはだまげたなぁ
俺はi5 2400を使ってたんだけど、どうやってもだめで365を購入した。
結構いい年なので、そっちの方がコスパが安い。労力・セキュリティ面を含めたコスパだ
10代なら2019を購入し、また10年後にこういう質問をしただろうな
君はどこかで、2003を無限に使えると思っていると思うが、恐らくハード的に完全に限界だ
労力を含めたコスパを考えるなら、2019を買うのがどう考えてもベストなんだ
どうしても安く済ませたいなら、その代償に君の時給が下がり続ける事になり、それに見合った糞エクセルが提供されることになるだろう 2019ですがピポット棒グラフでを作ったときに、軸のラベルが一個置きに表示されること無いですか?
例えば軸が日付だとして
1/1 ■■■■
■■■■
1/3 ■■■■
■■■■
1/5 ■■■■
の様になる。棒はちゃんと全部表示される
これは勿論エクセルの自動機能のお陰なんですか、たまに
[軸の書式設定]→[軸のオプション]→[ラベル]→間隔の単位=1
とやっても直らない(というかデフォルトで1のはず)
謎1
縦が短すぎるかフォントが大きすぎるのかと思って縦を思いっきり延ばしたり、フォントを思いっきり小さくしても同じ
謎2
[軸の書式設定]→[サイズとプロパティ]
に4方向の余白やテキストのはみ出しを設定するっぽいのがあって、これかとも思うのですが
この設定は常にグレーアウトしていて設定出来た試しがありません
謎3
軸の行をフィルターしたりして表示する内容を変えると(例えば4月を表示していたのを10月にするとか)直ったりする
この謎の挙動はなんなんですかね? その行の軸データに入らない空白が入ってる
別に困ってないなら聞くなよ >>539
「困ってない」ってどこを読んだら読み取れるの?w お世話になります。
状況が限定的かもしれませんがお知恵をお貸しください。
VBAを使用し、ユーザー定義関数で処理を行っています。
シートが1,2,3とあり、同じフォーマットがコピーされている状況で
引用される数値がそれぞれシート毎に違い、算出される結果は異なるはずなのですが
最終更新したシートの数値が別シートにも反映されてしまいます。
(例)シート1=結果100 の時にシートを切り替える⇒シート2=結果100
ただし、シート2で適当なセルを更新すると結果が正しい数値に治ります。
処理落ちのような感じなのですが
解決する方法はありますでしょうか?
宜しくお願い致します。 >>542
変なタイミングで自動計算が手動計算になってない? どんな関数かわからんからあれだけど、volatile入れれば動くようになる系じゃないのかな
function 関数名(引数)
application.volatile
処理
end function
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.volatile 回答ありがとうございます。
全シート確認しましたが、自動計算になっています。
又、関数ですが Application.Volatile True になっています。
シート変更した時に再計算するVBAでも仕込んだ方が
賢そうですかね…。これ以上重くはしたくないのですが…。 Application.Calculate も適用されません。
打つ手なしです…(汗) win10、Microsoft365E、VBA不可
Excelでふたつのテーブルを比較させて不一致のレコードを抽出したい
EXACTでは追加や削除があった場合、それ以降すべて不一致として判定されるので使えません
互いの行がずれても正しく判定する方法があればおしえてください >>542
ActiveSheetとか入ってる気がする
Function test()
test = ActiveSheet.Cells(1, 1)
End Function
これじゃなければコードを見ないと分からない
>>547
全部の列を繋いでcountif()とか
=a1&b1&c1・・・
これがもう一つのテーブルにあれば2で問題なし、1なら問題あり 回答ありがとうございます。
明日、countifで試してみようと思います。 >>547
レコードとかテーブルという用語を使ってる時点でクエリしか無いだろう。 >>542
ユーザー定義関数ってなんかへんなキャッシュ入るっぽいんだよね
必要なくてもセルを引数に取って、シートからはそのシート中の適当なセルを渡すとうまくいくかもしれない A1セルとB1セルが空欄の時にB1セルに
"要入力"と表示され、かつB1セルを入力
可能のままにしたいのですが、方法は
ありますか?
プレースホルダーみたいなイメージです。 >>554
別セルでIF関数使って実現しな
プレースホルダーはユーザー負荷高いからおすすめしないhttps://u-site.jp/alertbox/form-design-placeholders
それか、未入力なら(IF関数)、背景を黄色なりで色塗るよう条件付き書式設定してやればユーザーには優しいかもしれない C1を右揃え、要入力 と入力し、C列の幅を極小にする IF や VLOOKUP などの関数でときどき誤動作を起こします。
例えば IF(A1=1,"○","×") で、A1 が 1 なのに × になるとか。
詳しく調べると、A1 の表示は 1 なのに値は 1.000005 のような表示されない誤差。
A1 の式は 0.000005 の誤差が出ないはずですがEXCELの仕様?
とは言えすべての式を IF(ROUND(A1,0)=1,"○","×") のようにするのは面倒です。
計算結果も含め「小数*位以下の差は無視する」を既定設定で出来ますか? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
tsvをコピーして貼り付けた際、今までは自動でタブ文字でセルが別れていました
しかし最近は1列にまとまってしまい、区切り文字→タブで区切り、セルを分ける必要が出てきています
貼り付けた時、自動的にタブ文字でセルが分かれるような設定ってあるのでしょうか?
元になるtsvは専用ソフトから出力されていますが、
手動で作ってみても同じでした >>559
区切り位置の機能を一度でも使うと、その時の設定がコピペでも引き継がれる
適当なデータをTABで区切ったあとコピペすれば元の動作に戻る
昔からのおせっかい仕様 >>557
少し違うけど
オプション->詳細設定->表示桁数で計算する
でも、誤動作じゃないよ
計算の誤差も、10進数の小数点以下を2^-nの和で正確に表現できない事から起る仕様 >>561
ありがとうございます
オプション設定をしましたが、セルの値が 1.000005 なら表示が 1 でも × ですね。
結局、計算結果を参照して判断するなら ROUND 関数で計算誤差を丸めないと。
仕様とはいえ、微少な計算誤差は指定した桁で丸めるオプション設定が欲しい。 SET1 = Range("A1")+Range("A2")
SET2 = Range("B1")+Range("B2")
みたいなのをひとつだけ書いておいて
複数のプロシージャで使用したいです。 >>564
一瞬、範囲を結合してSet出来るのかと思ったわ。 >>564
Subとかfunctionの後に()あるでしょ
その中に、Byval a As Longとか書く
もちろん呼び出す側もcall 〇〇プロシージャ(a)で呼び出す >>555.556
ありがとうございます、要入力とせずに
着色で対応しようと思います。 >>569
Public num = Range("A1")+Range("A2") As Integer
ではエラーになりますよね? >>570
Public Function ××() As Integer
×× = Range略
End Function
で動くよ
別にPublic Property Getで同じような書き方してもいいけど >>571
Public Function xx() As Integer
xx = 条件1 and 条件2
End Function
を
Call xx しても反映されないですが
何か間違っているでしょうか? Aの欄に日付が入っています
Bの欄に数が並んでいます
Cの欄に分類のための番号が入っています
Aを横軸、Bを縦軸としたグラフをCごとの系列で作りたいのですが、
今まではIFを使って別シートにCの値でカラム分けした表を作ってからグラフにしていました
もっと簡単にできる方法があれば教えてください >>572
callして使うんじゃなくて変数的に使うものだから お世話になります。
Excel VBAで印刷時にシート1〜4を再計算し印刷
というのを組んでいるのですが
各シート印刷時は再計算されるのですが、複数シートを選択すると
シート2以降が再計算されず困っています。
また、PDFとして保存する際はどのようなコードを書けばよいのでしょうか?
回答お待ちしております。 質問と困ってることが全然違うんですが、質問は何ですか? >>576
申し訳ありません。
再計算された状態で印刷するコードが知りたいです。
また、PDFでも保存するのでそのコードも教えていただけると幸いです。 >>577
Excelファイル PDF出力 VBAでググれば後者は簡単に解決すると思います >>578
再計算された状態でPDFにできないので困っています このスレのおかげで
気象庁サイトの過去の気象データ検索から
特定地点の1時間値を1日ごとにPower Queryで読み取って
1年分くらいをまとめるVBAが
なんとか出来まスた。
感謝。 シート見せて
>>579
>>>578
>再計算された状態でPDFにできないので困っています >>579
ExcelをPDFにするんじゃなくて、PDFに計算式入れたら? >>575
再計算は
calculate
を一行入れるだけじゃダメか
pdfへの出力と合わせると
Sub outputPDF()
'再計算
calculate
Dim fileName As String '保存先フォルダパス&ファイル名
fileName = ThisWorkbook.Path & "\201603請求書_株式会社ホゲホゲ御中.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName
End Sub
参考
https://tonari-it.com/excel-vba-pdf/ >>541
「不思議」で検索してもお前の書込しかヒットしないが? 画像のようなデータがあったとして
F3に入力した数字で、D列にフィルターがかかる ということはできないのでしょうか。
https://imgur.com/QSNKruC 連投申し訳ございません。
人名のデータリストがあったとして、それにフリガナを振ろうと思っております。
その時、フリガナも統一したいと思ったため(田中なら全員タナカ 仮にデンナカでも問題なし)、VBAでフリガナを一度消して振り直すコードを書いて実行しました。
しかし、エクセルは前のフリガナを記憶しているようで、同じ田中でもフリガナが違う場合があります。
それだと名前順にソートしたときに、同じ名前なのにバラバラの行に振り分けられてしまい、まずいです。
同じ漢字なら同じフリガナを振り直すには、どうすればよいのでしょうか
なお上のフィルターの質問は、vbaを使わない方法があれば教えていただきたいです。
どうかよろしくお願いいたします。 >>588
やり方が間違ってる
フリガナを消すのはRange.Characters.PhoneticCharacters = ""
再設定はRange.SetPhonetic 申し訳ございません。フリガナの>>588の質問に関してはうまくいっておりました。
同じ漢字なのに同じフリガナにならないなー と思っていたら、漢字が違っておりました。
大変失礼いたしました。 初心者質問で申し訳ありません。
列全体(決められたセル数ではなく、これからもデータが追加されるため列全体)の
-の数値(小数点第2位まで)だけを 色変更したいのですが
どのような数式になりますか? >>592
表示形式か条件付き書式
全行入れるのはオススメしない。重くなるかもしれないから >>588
VBAを使わないのであれば、フィルタの詳細設定を手動でやるか、
ROWとCOUNTIFでフィルタ風の計算式を作る。
誰か上の方で作ってなかったっけ? >>588
って、よく見たら連番じゃないか。
例がおかしいか、INDEX&MATCHで十分か、どっちかだな。 誰がなんの質問してるかわからないから名前書くかトリップつけろ >>587
VBAなしということなら
他の行に飛ばしてそこの表示をフィルターかける感じでいいなら
連番(番号の重複がない)の場合はindexとmatchでとばすだけ
重複があるなら
countifで検索して該当箇所にsumで行番つけてindex・match・rowで拾う感じにするかな >>587
クエリーテーブルだな。
Select A.*
From 範囲1 As A, 範囲2 As B
Where A.番号 = B.番号
これで範囲2の番号書き換えて更新すれば、フィルタがかかったみたいになるだろう。 ああ、これ回答する方が名前書いても意味ないのか。
次からやめるわ。 VBAで質問です。
何十列もある表で不要な列を大量に削除したいと思っています。
Range("A1,N1:U1.....").entirecolumn.deleteといった感じで手作業、つまり目で列を確認してコードを書くしかないのでしょうか??
分かる方お願いします。 >>602
列が不要かどうかを機械でも判断できるような条件なら自動化できる VBA使えません。
@テーブル化されてる(色がシマシマ)データを解除して普通にデータにする方法教えてください。
コピペで新しいシートに123形式で貼る以外に方法ありますか?
A絞り込みして見えてる部分に対してオートフィルで連番できないのは仕方ないのでしょうか? >>606ー607
テーブル解除で検索してみた、範囲に変換っていう変な名前のボタンがそれだったみたい(´;ω;`)ありがとう。 >>602
1行目に行挿入
不要な列に「1」を入力
イカコードを走らせる
最後に一行目を削除
とか
Sub Macro1()
最終列 = Cells(2, Columns.Count).End(xlToLeft).Column
For i = 最終列 To 1 Step -1
If Cells(1, i) = 1 Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub >>602
selection.entirecolumn.delete 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
アンケートの清書みたいな感じで
質問の答えのA・B・Cのどれかに○をつける作業が
1ファイルあたり30項目くらいで、ファイルが50くらいあります。
ファイルの内容や書式は共通ですがABCどれに○かはそれぞれ違います。
A・B・Cはアルファベットもナカポツも各1セルで5セルに入っています。
この○付け作業は、今まで図形の○付けでやってきましたが、やたら時間がかかります。
リスト選択にして、記号の○付き文字に変えるとすると、文字サイズを揃える必要が出てきます。
何か効率的に○付けをしていける方法は、ないでしょうか?
できればABC各何個か集計も出来ると助かります。ファイルごとや全体でも。
良い方法を教えてください。 オプションボックスとは何ですか?
初心者にも分かるように書いてもらえますか? >>612
前提がめんどくさすぎる。
フォントサイズごとコピーするのが一番早いと思う
Aの回答→?
Bの回答→?
Cの回答→?
そもそものフォーマットを変更できるならした方が良いと思う
https://i.imgur.com/K1bXRNp.png
後はgoogleフォームを使うと、アンケートや集計が楽になるよ >>615
フォーマットは変更不可なので悩んでいるところです Excelにこだわらずforms使った方が早くない? >>617
フォーマットの変更不可はキツイな
vbaで○はつけられるけどエクセルは図形がとにかくずれるのであまりやらないほうが良い
それに結局どこに○を付けるかを指定する必要があるので、それを考えると囲み文字にしてしまったほうが早い >>619
やっぱり囲み文字をリスト選択にして、マクロでフォントサイズ指定が現実的なところですかね >>620
そっちの方がいいかな、コピペより早そうだ
あと、条件付き書式でフォントサイズ変えると早いとおもったけど条件付き書式はフォントサイズ変えられないのね 等幅フォントで全角Aに囲み合成文字(U+20DD)とか
A⃝ このデータをアイウエオ順に並べ替えたいのですが、どうすればいいかわかりますか?
百均のサンダル(東南アジアは必須)
百均のS字フック
百均の吸盤フック
百均のジッパー付き小物入れ
百均のジッパー付き手提げ袋(大)
※ 荷物が増えてバッグに入らなくなった場合等の緊急用
百均の財布または小銭入れ
百均の靴下
百均の使い捨てパンツ
百均の靴中敷き
百均の小型物干しまたは洗濯ばさみ
百均の爪切り
百均のハサミ
百均の絆創膏
百均のサージカルテープ
百均のガーゼ
百均のハンガー
百均の南京錠
百均の自転車用ワイヤーロック
百均のウェットティッシュ
百均の手袋(寒い時)または軍手
百均の製氷皿(暑い時)
百均のペットボトルホルダー
百均の方位磁石
百均の指示棒
百均のボールペン
百均の小型置時計 >>624
ふりがなを追加入力してソートすれば簡単にできる 2007利用です
数値を加算するSUMについて
SUMに利用したセルを着色なり枠に色をつけるなり出来ませんか
どのセルを利用しているのか分かりやすくしたいです >>624 関連
1、-1、2、-2、3、-3 をソートすると -3、-2、-1、1、2、3 と並び替えられますが、
A1、A2、A3、A-1、A-2、A-3 だと A1、A-1、A2、A-2、A3、A-3 となり、
A01、A001 やAと数値の間に空白や"*"、"_"などを入れると、また変わります。
A-3、A-2、A-1、A1、A2、A3 と、数値の部分を正しく並び替える方法はありますか。
以前のバージョンと異なっているようで、昔作った表がうまく並び替えられない。
(2003以前と2007以降とで変わったような) >>626
一時的でいいんなら、数式の入ったセルを編集状態にすると数式で使われてるセルに色が付く >>627
書式をたとえば
"A"0
にしてセルには数字だけ入れる >>626
・セル編集
・参照元のトレース
・条件を指定してジャンプ->参照元->着色 >>631
バージョンアップして条件付き書式とformulatext 2019に「1-1」と入力したら「1月1日」と変換しない設定とか追加されてますか? >>637
フィルターの詳細設定を使って別の範囲に抽出ならできる すいません質問です。
例えばA1に5が入っている時にB1に=A1と入力すると5が返りますよね?
これをマクロなら
range(“B1")=range("A1")を実行すると出来ると思います。
質問したい事は上記のマクロを実行しないで自動的にB1にA1のものを参照する事はできますか?勿論、B1に=A1などの計算式を入れる事もダメとします。 関数もマクロも使いたくないならExcel使う意味よ コード貼り忘れた
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Cells(1, 1).Value = Cells(1, 2).Value
Application.EnableEvents = True
End Sub お世話になります。
ExcelVBAにて、コードを実行しようとすると
"このプロジェクトのマクロは無効に設定されています…"と表示されます。
ブックを開いたときに、マクロを有効にするかどうかも聞かれていますし
ファイル>オプション>トラストセンター>マクロの設定
を"警告を表示してすべてのマクロを無効にする"か"すべてのマクロを有効にする"
に設定しても症状が治りません。
お判りの方いましたらご助言頂きますようよろしくお願い致します。 >>649
特定のブックだけでなくすべてのマクロが動かない、どのフォルダーに入れてもだめならグループポリシーの可能性 すいません、エクセル2019ですが
時間が
0.15、0.3、0.45…
の様に入力されているセルを使って時間計算する方法ってありますかね?
0.15=0:15
0.3=0:30
0.45=0:45
です
試しに
=LEFT(A1,1)&":"&RIGHT(A1,2)
とやって時間文字列に変換してみたのですが
0.15とかだと上手くいきますが、0.3の場合「0:.3」となとなって上手くいきません
それならばと
=LEFT(A1,1)&":"&MID(A1,3,2)
とかにすると、やはり0.3の場合「0:3」となります
TEXT関数やTIMEVALUEなどもいろいろやってみましたがどうも無理っぽい
こういった計算をなるべくシンプルな式で実現する方法ってありますかね? >>652
SUBSTITUTE( ,".",":") >>652
試してないけど
=TIME(INT(A1), INT(MOD(100*A1, 100)), 0) >>652
Excelは
0.5/24=0:30
に出来る機能があります
なので、(0.5×5/3)/24=0:50となるはず
これの応用でなんとかならないかな?
5/72を全てのセルにかけるようにするとか >>652
15分刻みだけでなく、もっと中途半端な時間もあるのか
45分までなのか、最大何時間何分まであるのか
これらの条件によって数式を作る手間がちょっと変わってくる 15分ごとならchoose(A1/0.15,00:15,00:30,00:45)みたいに並べるとか 皆様ありがとうございます
>>653
これだと、0.15とか1.43とかだといいのですが
下記のケースだと
0.3→0:3
1.2→1:2
とかになって上手くいかないです
念の為書式で「.00」を設定してみましたがやはりダメでした
>>655
なるほど、これもありましたね
なので単純に
(A1/24)/(6/10)
とやってみたら
0.3→0:30
になったので一瞬喜んだのですが、よくよく考えると時と分の単位が違うので1.5とかの1時間を越える分だと上手く行きません
一桁目と小数点以下を分離した上で計算すれば出来そうですが、ちょっと複雑になりそうでやめました。すいません
>>654
!!!これバッチリです。文字列を弄ってなんとか出来ないか四苦八苦してましたが、純粋に計算でいけますね。素晴らしい
これで行こうと思います。ありがとうございました >>657-659
実は残業時間なので分刻みでいくらでも有り得るんですよね
いくらでもと言っても10時間残業とかはさすがに無いですが 答えが出てるようなので今更だけど、普通に秒に直すという発想はなかったんかい。 =--TEXT(A1*100,"0"":""00") 【1 OSの種類 .】 Windows
【2 Excelのバージョン 】 Excel for office 365 mso
【3 VBAが使えるか .】 ・いいえ
【4 VBAでの回答の可否】 否
普段関数をつかわない超初心者です。
エクセル内で、URLの一部を別のタブの数字に変換してリストをつくりたいです。
自分で調べたところ
=hyperlink("http〜"&タブ)
にすると最後を置き換えられることがわかりました。
しかし最後に.htmlをつけるのがどうしても上手くいきません。
ご存じの方がいたら教えて下さい。
検索方法のヒントでも構いません。
よろしくお願い致します。 >>664
ハイパーリンクではないけどsubtitleで置き換える方法で上手くいきました。
より良い方法があったら教えてください。 >>664
正直、質問の意味がよくわからないんだけど、その式の最後にhtmlを付けるだけなら
=HYPERLINK("http〜"&タブ&".html")
タブって何?最後、最後って書いてるとけど、本当の最後は数字なのかhtmlなのかどっち? だめだ、「http タブ」でググっても意味が分からん。
一体どんな不思議なことをやろうとしているんだ。
それより、Excel for office 365 msoって、
officeとmsoがかぶってはいませんか?
フルで言えば、Excel for office 365 microsoft officeでしょ? URL書きまくったらスパム判定されてアク禁で草
>>669
使ってないよ
エクセル覚えたてなら使ったかもしれない vbaをある程度マスターしたら自分で勝手に足りない物は作るから、エクセルの新機能なんてどうでもいい 昨今、サイバーセキュリティ()云々で上場企業ではVBA禁止されてきてる
そして何故かPowerPlatformが推奨されてる 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
1つの列にデータがずらっと並んでいて、そこから重複していないデータだけを別のシートに抽出する方法を教えてください
りんご
りんご
バナナ
みかん
みかん
が並んでいる場合、バナナだけを抽出したいです 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
excel2013 vbaについて
pdfを別ファイルで何枚も保存するプログラムを作ったのですが、"名前を付けて保存"ダイアログだと、pdf1枚ごとに保存先を聞かれてしまいます。
保存先だけダイアログで決めて、保存名はコード上で指定して、次々にpdfを出力するにはどうすればよいでしょうか。 pdf保存処理ループの前にフォルダ選択のダイアログを出す 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
windows
セルA1にrandbetween関数でランダムな数値を入れ、vba上で k = range("A1").value と格納した場合について質問です。
ActiveSheet.Calculateで再計算すると、セルA1の値は変わりますが、kに格納された数字は変わりません。
もう一度k = range("A1").valueを記述すればよいのですが、実際のコードのこの部分は複雑で、何度も出てくるため、非常に煩雑になります。
ActiveSheet.Calculateしたとき、どうにかkの値も同時に格納し直したいのですが、どうすればよいでしょうか >>680
考え方がそもそも…
セルの値を使って計算するのではなく、kを変更し、そのkの値で計算してセルにkの値を反映させる
が良い >>681
kにはランダムなRGB値が入るようにしてあります。
そのRGB値は、セルA1 B1 C1 それぞれに=randbetween(0,255)を入力し、コード上でrange("A1")+range("B1")*256+range("C1")*256+256を計算して得ています。
これでセルを塗りつぶしていくのですが、隣り合った列(具体的にはもう少し複雑ですが、不要な説明なため省きます。)が似たような色にならないように、kの値を判定にかけてから塗りつぶす というコードにしています。
つまり、RGB値をセルから持ってくるようにしたのは、判定のためとそのほうがコードが簡潔になると思ったからです。
こういうケースではどうでしょうか? >>684
塗りつぶすセルでしょうか
1万くらいです >>683
Property GetでRGB取得してそれを参照すればいい そんなの何に使うんだよ。
ゲームならBitBltの方が速いんじゃないか? >>688
用途不明過ぎて答えられないから目的聞いてるんだろうが。 INDIRECTってインディレクトとインダイレクトどっちが正しいの? ランダムな仕事ってのもあるらしいぞ
何ヶ月か前にVBAスレでデータを捏造する方法を聞いてるやつがいた
一定の条件で適当な数字を大量に入力して毎日提出するという謎の仕事があって、乱数を使ったマクロでやる方法を教えてやったら、一瞬で終わるようになったので入力担当者は仕事がなくなってクビになったそうだ CHOOSE関数ってインデックスが整数じゃないとだめですか?
たとえばaというインデックスに対してsdf、bというインデックスに対してvcxを返したいときはIFのネスト使うしかないですか? >>697
・CODE("a")-96
・HEX2DEC("a")-9 >>698
たとえが悪かったですね
それだとアルファベット1文字ならいいんですが、
やりたいのはインデックスがpinkやpurpleなど単語になっているようなものです インデックスは数字じゃないとダメ
キーとインデックスの対応表作ってlookupするか直接lookupするか >>699
・MATCH("pink",{"pink","purple"},FALSE)
・=VLOOKUP("pink",{"pink","sdf";"purple","vcx"},2,FALSE) 連想配列みたいなのも、やろうと思えばできるってレベル 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
セルの列に「0」が入力されていたら次の整数(0以外)までいくつ0がはいっているか数えたいのですがうまくできません。
例)
B C
0 2→Bの列に連続して0が2つ
0
5
0 3→Bの列に連続して0が3つ
0
0
7 うーん…?作業列作っていいならB列にCOUNTIFかIFで整数だと1かえすようにして
C1
=COUNTIF(OFFSET(A1,0,0,MATCH(1,B1:$B$20,0),1),0)
C2以降
=IF(AND(A1=0,OR(A2>0,A2=0)),"",COUNTIF(OFFSET(A2,0,0,MATCH(1,B2:$B20,0),1),0))
駄目だなわいのようなたまにしか使わん程度にはいいの思いつかん こんな風に
https://i.imgur.com/JEd7iA7.png
N列に何か入力された時に、その右のO列に書いてある数字を足していってその合計をQ2に表示させたい場合
どんな関数を入力すればいいのか教えてください >>689
用途を聞かないと答えられないなら触れなくていいと思う >>707
=SUMPRODUCT((N:N<>"")*O:O) 【1 OSの種類 】 Windows10
【2 Excelのバージョン】 Excel2013 、2016
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否 】可
新規でシートを作成する際にセルの幅(列・行)
をデフォルトから任意の幅に設定したいと考えてます。
現在はマクロでやっていますが、この方法だと
シートを作成してからいちいちマクロボタンを押さねばならないので、シートを作成した時点でセル幅を調整済みのものに出来ないでしょうか?
よろしくお願いします! >>713
シートの新規作成まで全部マクロに入れておけばワンクリックで終わる >>714
あ、そうか成る程!頭良いですね!
家帰ったら早速やってみます! 【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
■やりたいこと
参照セルを使わずにプルダウンメニューから「今日の日付」を選べるようにしたい。
■試してみたこと
(1)名前の定義で名前「今日の日付」、参照範囲「=TEXT(TODAY(),"ggge年m月d日")」を設定
(2)データの入力規則で入力値の種類「リスト」、元の値「=今日の日付」を設定
※しかし、(2)でエラーとなり設定できない。「=INDIRECT("今日の日付")」も試したがダメ。
参照セルを使えば簡単だが、何とか参照セルを使わずに行いたい。
よろしくお願いします。 >>717
win10 excel2010
(2)で何の問題もなく=今日の日付でエラー出ずにできたよ >>718
ああ、説明が悪くて申し訳ない。
プルダウンで「今日の日付」という文言を表示するのではなく、「○年○月○日」という表示を動的に行いたい。
そのために試したのが、(1)を設定後に(2
)を設定するという手順。
作業セルを作らずに動的な日付をプルダウンメニューで表示する方法はありませんか? 頑なに計算セルを用意しないとか、プルダウンに拘るとか目的がわからない >>713
もう解決しちゃったかな
そのバージョンでどうかはわからないんだけど、
2000のときに新規作成のシート数デフォルト3を1にするときの方法で、
C:\Windows\ShellNewにあるファイルを目的のものに置き換えるという方法があった
そこにファイルがあれば置換、ない場合はレジストリをいじるとか何とかだったと思う
お暇なら試してみて マクロを使わずにA列の5行からA2に入力された数値の行までの最大値を求めてA1に表示したいです
たとえばA2に123と入力されていたら、A1=MAX(A5:A123)という具合です
このような場合、A1にどのような数式を記述すればいいでしょうか? >>720
計算セルは美しくないので使いたくない。
プルダウンは選択した日付を固定するため。
※TODAY関数を使っていてもプルダウンで選択した日付は固定される。 >>723
Excelの機能として、[Ctrl]+[;]で今日の日付を入力するのはダメなの?
他の人に入力させるから、というのであれば、操作方法をコメントで明示したら? >>723
別シートに計算セル作って普段は非表示にしておけばよいのでは?
どうしてもコントロールに拘るのであれば、datepicker使った方が早くて応用ききそう >>722
max(indirect("a5:a"&a2)) >>727
まさにこれを求めていました
ありがとうございました MATCH関数を使うと指定範囲内のどこに目的の値が存在するかがわかりますが、
値が重複している場合は最初に引っかかったものが返ってきます
これを最後に引っかかったものにすることはできないでしょうか?
ソートやマクロは使わないで、セルに数式を入力するだけですませたいです >>724
キーボード入力は行わずマウス操作のみで完結したいです。
>>755
>>726
やっぱりセルの非表示しかないかな。 Excelの万年カレンダーを作りたいのですが思うようにいかず困ってます
色々なサイトをほぼ丸パクリにして月曜日スタートにして2020年11月を指定すると11月2日月曜日がスタートになり11月1日が消えてしまいます。
どのような関数を入れる事で解決出来るのでしょうか 丸パクリしたサイトでは11月1日のない万年カレンダーを紹介しているのかな >>732
多分、WEEKDAYを使ってると思うけど、足すんじゃなくて引く
でも、万年カレンダーなんだから、曜日固定じゃないほうが、らしいよ >>732
横方向に月〜日の曜日の列、1行が1週間分の表となるカレンダーだとすると、以下のようにしてみてください。
A1セルには西暦年を、B1セルには月を指定するものとします。
C1セルには計算式 =WEEKDAY(DATE(A1,B1,1),3) を入れておきます。
A2〜G2セルは曜日を表示するものとします。
A3〜G3セルは第1日曜を含む週(前月の最終週あり)になります。
G3セルには計算式 =DATE(A1,B1,7)-C1 を入れると、あら不思議!
その月の最初の日曜となる日付が表示されました。
>>734さんが「足すんじゃなくて引く」というのは -C1 のことでしょう。 Sub シートの名前を付け直す()
Dim i, k, h
Dim Targets As New Collection, buf As String
Dim ws As Worksheets
For i = 3 To Worksheets.Count
Targets.Add Worksheets(i)
Next
k = 1
⭐For Each ws In Targets
If k < 10 Then
Targets.Name = "0" & k
End If
Next
End Sub
以上のコードで⭐のとこで型が違うというエラーが出ます。
ws と Targetsの型が違うという意味だと思うのですが、どうすればよいのでしょうか >>736
dimws as worksheet
for each ws in worksheets
ws.name.......
next
じゃないと動かなくないか >>738
それだと全てのシートが対象になってしまいますよね?
Targetsコレクションに指定したワークシートをまとめて、そのコレクションに対してFor eachをかける という動作をしたかったのですが... すみませんtarget.nameはおかしいですね
その他修正してうまくいきました
ありがとうございました。 2行1列の結合セルがずらーっと縦に並んでて値が入力されていたとして、それを全選択してコピーして、下に一つずらして貼り付けるとセルの結合が解除されるのですが... 何故でしょう
コピー側と貼り付け先のセルの状態(結合のしかた)が全く同じなのに解除されます >>742
被るからってなんで解除されるんですか
そのままはっつければいいのに セル結合は表計算ソフトとしてありえない挙動なんだからする方が悪い セル結合がdisれる様になってようやくエクセル使いとして一人前 ありえない挙動するなら機能として元々付けなければいいのに A列とB列に値が入っていて、A*Bの15個ごとの移動平均を求めたいです。
C=A*BとしてD1にAVERAGE(C1:C15)を入れてD列にコピーすればいいのですが、
不要なC列を使わずにAVERAGE(A1*B1:A15*B15)みたいな感じで書く方法はないでしょうか?
ちなみにAVERAGE(A1*B1:A15*B15)は#VALUE!となります。 バージョンもvba可不可もわからんしsumproductでもつかえば? >>750
=SUMPRODUCT(A1:A15*B1:B15)/15 >>751-752
ありがとうございます
これでいけます 他人が作ったエクセルを使わなきゃならないことがあるからねぇ...
セル結合を心から受け入れてこそ一人前なんだよねぇ... >>755
セル結合した上に、罫線は図形で入ってる作品とかあるからな
紙で配布する資料とはいえ、目玉が飛び出る思いがしたよ 選択範囲内に結合箇所があるかないかわかる関数があれば良いのかな。 CELL関数とかでわかんないのかなと思ったけどわかんないみたいね MergeCells使えばいいんじゃない?
総当りで 範囲選択するとリボンの表示が変わるのでそれをアテにするのは?
https://i.imgur.com/mB7w9Ce.png >>762
ほー、これは簡単だね。
明日会社で試してみる。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】否
A1にA2〜A101まで入力した数値のAverageを表示し、A2〜A101に数値を入力するようにしています
数値の入力数が20以下の場合に(入力数が少ない場合に)A1のセルを黄色にするにはどうしたら良いのでしょうか? >>765
条件付き書式で=COUNT(A2:A101)<=20 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
ちょっと漠然としつつ、でも(多分)あるあるな質問なのですが、
エクセルのファイルを開いて、なんの入力や変更も行わずに閉じても
「保存しますか?」とダイアログでいちいち確認が入ってしまうファイルがありますが、
ダイアログがでる理由って何が考えられますか?
できるのなら対処もしたいです。 >>768
indirect関数などの「揮発性関数」を使ってませんか? >>768
xlsxでなく、xlsファイルを互換モードで開いている時にもその現象は起こる ExcelってNumbersと異なってドロップダウンリストが▼クリックしないと表示されないんだよな。
Numbersは選択するだけで表示されるので超楽。 実際にはAlte+↓で表示されるけど面倒くさいし、なぜワンアクション必要とする仕様にする必要が無いよね。 cells.Validation()で設定されたかどうか判定
Worksheet_SelectionChangeでリストを開くってのを作ろうと思ったけどcells.Validationの判定が分からなかった Excel365ですがExcel2010の時とROW関数の仕様変わりました?
Excel2010
=ROW(A1:A10)
だとA1からA10までの最終行のセル番が出ましたが
Excel365
=ROW(A1:A10)
だとA1からA10までのセル番が全てスピルで出てきます
まぁ考えてみれば当然ですがね >>776ですが追記
=ROW(A:A)
Excel2010だとA列のデータが入っている最終行が出る
Excel365だとA列全体なのでスピルエラーが出る
という事もありました >>776
スピルの実装により、スピルエラーはちょくちょく出るようになってしまった
使いこなせていないのが悪いんだが、タイピングミスでスピルになるのは少しキョドる >>778
古いExcelで作った式が365で開くとスピって式の頭に@が出るからちょっとドキッとするだけでした
なんか心配になりますねこの機能
大丈夫なんだろうけど ざっくりとした質問ですが、ここでの質問に答えられるくらいの知識と応用力はどうやったら身につくのでしょうか?
Excel ○○ ○○
といった感じで都度ネットで検索するか、ここで質問するかで対処していますが・・・
Excel関連の本を読み尽くすのが無難でしょうか? >>780
トライアンドエラー
困ったら調べるの繰り返しでいいと思うよ
そのうち検索方法もわかってくるだろうし >>780
そんなこと言ってる時点で使用頻度そこまで高くないのが分かる
だから本なんて買う必要ない
読んだそばから忘れてく Excelマスターのみなさん教えてください。
A1に月末日が入力されています。
B1にA1の翌月20日を返したいです。
しかし、20日が土日祝日なら前の日付を返したいです。
20日が土曜日なら19日、日曜日なら18日といった具合です、
よろしくお願いします。 >>785
Month関数を使って翌月を調べる(12月用の分岐あるいはMod12で翌月を求める)
のと、
Weekday関数を使って曜日判定をする
これでできるからあとは自分で考えて >>786
すまん12月の判定の場合は翌年1月になるからMonthだけじゃだめだわ
12月になったら翌年になるようYear関数使ってくれ EOMONTH
祝日一覧
workday
でできるかな 月末日は予めわかっているんだからedateで20日後算出、ifとweekday組み合わせて土なら-1、日なら-2で通常月は対応できる。
18-20日が祝日になる可能性があるのは現状春分、海、敬老の3つなのでそのカレンダーを作っておく。仕組み上、それらの振替休日は該当しない。
あとはカレンダーにmatchさせて引いていけばよいけど、関数だと長ったらしいのでVBAをおすすめする。
ここまで書いててあれだけど、最初から請求締め日のカレンダー作っておいた方が早い気がしてきた 春分が鬼門だな
こいつだけは自動計算できないから、結局は手作業で締め日のテーブルを用意するしかないのでは 祝祭日リスト用意してworkdayで次月の1日の1営業日前かな 春分の日や秋分の日って決まってるようなもんなんだからそれで決め打ちでもいいと思うけどね
https://ja.wikipedia.org/wiki/%E6%98%A5%E5%88%86%E3%81%AE%E6%97%A5
祝日の追加はどうしようもないから、毎年12月頃に確認するしかない 祝日はリストを用意するとして、
「20日が土日または祝日なら19日、19が土日(略)なら18、18が、、、」というのをどうするか。
最初に思いつくのはif関数だけど、どこまでネストするのか。
vba使わないで他に何か良い方法あれば私も知りたい。 >>795
=workday(21日,-1,祝日)
でいいやん。祝日は祝日一覧作っとく。
21日は例えば=eomonth(○,0)+21
○のところは前月の日付 20日からさかのぼる話なら20日が月曜祝日で17日金曜日を求めるのが一番めんどくさいケースでしょ
17日金曜日が祝日になることはないからそれ以上面倒なケースはない
20日でなく任意の日となると5月6日を判断するケースが一番めんどくさい 20日を月曜振替休日にすると、めんどくささがもう一段階上がるぞ 一覧表を手作業で作った方が早い
手抜きの計算式で20年分ぐらい一気に作っといて、カレンダーを見ながら手動で数カ所修正するだけ >>798
存在しない
あったとしても19日日曜が祝日なだけで何も変わらない レスしてくれた人ありがとうございます。
なんか関数でやるのはかなり煩雑になりそうですね。
VBAはあまり分かりませんが、VBAでやってみたいと思います。 >>797
20日は、21日マイナス1日だろ?
このスレ、初心者も回答書いたり、理解出来ない愚痴書くスレだったとは
あと
ネットで検索すりゃ祝日一覧なんて簡単に拾えるのに >>802
vbaでも同じだぞ…
結局ロジックを考えるのがすごくめんどくさいことは変わらん >>802
793や796の言ってるとおり、WORKDAY使えばすごく単純にできるよ
=WORKDAY(A1+21, -1 , 休日リスト)
で大丈夫
休日リストを自動化させるのが、いろいろと落とし穴があって難しいところがあるけど
祝日候補を作業セルに入れて、毎年手作業で書き換えれば難しくないよ 祝日はめんどくさいなぁ
春分や秋分のように正式に決まるのが前年とかだったり、法改正で新しい祝日ができたりもするから、数年先までそのまま使える祝日一覧ってのはなかなか出来ない
結局毎年修正 vbaなら条件に一致する場合(土日祝日の場合)はマイナス1として、do loop untilかwhileで書けば、ネストする回数考えなくてよいし割と分かりやすい。
関数でやるとifを入れ子にして4回使えばできそう。どちらにしても祝日一覧を作るのは前提として。
21日は関係ないと思うんだけど、どういうこと?私の理解不足? なるほど、workday使って21から引くわけね。わかりました。weekdayと空目した。 まさかこんなに話題になるとは思いませんでした。。。
VBAは苦手なので関数で対応したいと思います。ありがとうございました。 祝日リストについては、それを作れるアドインを
置いてくれてるwebページとかあるし
大した手間いらない ネットにアクセスできれば、どっかからカレンダーを落としてくるのが簡単
そのサイトが永続かどうかって問題はあるけど
政府がデータベースを公開してくれるといいんだけど
デジタル省とか作るんなら、そういうデータこそ国が固定されたURLとフォーマットで提供してくれないかなあ デジタル省の本当の目的はマイナンバーカードを全国民に持たせることだからな
カード利権に金を流せればそれ以上は興味ないでしょ
カード更新のたびに国民が金払うとかアホか >>803
おまえの意見が採用されなくて残念だったなwww たとえ効率の良い解決策があったとしても、実際使う人が理解できなければ無意味なわけで、
さんざんWEEKDAY連呼した挙句返ってきた答えが「なんか関数でやるのはかなり煩雑になりそうですね。」
そして捨て台詞「このスレ、初心者も回答書いたり、理解出来ない愚痴書くスレだったとは」
相手のレベルに合わせて教えてあげる能力のない人がマウント取りたいだけ
滑稽だな セルに入っている文字列から特定の文字を抜き出す関数あったら教えて。
例えば、
特定の文字→あ
文字列→あしかのあかちゃん
抜き出した結果→ああ・もしくは2
特定の文字→う
文字列→うちゅうのうみでうんどうかい
抜き出した結果→ううううう・もしくは5 セルの個数は出るんだけど、
セルの中に何個あるかはよくわからんの。 特定の文字→い
文字列→いちごばたけのいちねんせい
抜き出した結果→いいい・もしくは3
ってこと? 特定の文字→A1
文字列→A2
なら
抜き出した結果@→A3=REPT(A1,A4)
抜き出した結果A→A4=LEN(A2)-LEN(SUBSTITUTE(A2,A1,"")) substitudeで置き換えた結果と長さ比べればわかるんじゃないの 前に書いてあることを読んで読んだことを忘れてまるで自分が思いついたかのように話す人 >>819
(  ̄ー ̄)ニヤリ
>>820>>821
家帰ったらやってみるありがとう >>820>>821
でキタ━(゚∀゚)━!
お兄さんありがとうございました! 数式を入力したあと、数式バーで入力状態にすると使用セルがハイライトされますが、
このハイライトってドラッグで移動できるのはご存知でしょうか
また、この操作って名前ありますか?
https://i.imgur.com/ywrFtwG.png 知ってるが名前までは知らない。
勝手につけちゃえば?
ナイスセルとか。 ああ香具師セルでいいや。
香具師なんて今時誰も使ってないから空いてる。 ピボットテーブルについて質問です
入出庫とカレンダーのモデルデータを参照させています。列に日付、行に商品コードを設定しており、表示させる値をその日時点の在庫数にしたいです。
メジャーでsum([入庫])-sum([出庫])を設定すると当日のみの在庫となり、入庫のない日はマイナスになります。
タイムラインを使わず日ごとの累計値にするにはどのように記述すればよいでしょうか? >>829>>832
有名でしたか、ありがとうございました すみませんが、Excel はちょっと、、、
Excel を使わない方法はないでしょうか。 Excel以外だとJ-Excelくらいかな。
使ったことないからわからんけど。 方眼紙とモノサシ、エンピツと電卓があればエクセルなんていらないさ 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
商品リストシートに商品コード、商品名を入力しています。
データシートのAセルに商品コードを入力するとBセルに商品名が、Bセルに商品名を入力するとAセルに商品コードが表示されるようにしたいのですが、循環関数になってしまいます。
再計算せずに大人しくしててくれるか、ドロップダウンリストみたいに空いてるセルを簡単に補完したいのですが方法がありますでしょうか?
よろしくお願いします。 VBAに関する質問です
専門職ではないので、もし現場で表記するなら…という意見を
お聞かせください。
If A1 = "〇" Then
If ....
ElseIf Not A1 = "〇" Then
のようにIFの分岐は否定した文も書いてあげる方が親切なのでしょうか?
それともElseのみでいいのでしょうか? >>843
Elseのみでいい
可読性を意識するのはいいことだと思うので、ガード節というワードを検索してみるといいかも 式の内容によっては1回目と2回目の評価で結果が変わる可能性もあるので、書かない方がいい >>845 - >>846
ご意見ありがとうございました。 >>840
A,C列にD,B列を参照する式を入力、左揃、セル幅を極小(0はNG)にして、
B,D列にコードか商品名を入力させるようにする 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
お願いします。
フォームにあるテキストボックスのIMEModeを半角カタカナにしているのですが、一回そのテキストボックスに何かを入力した後は
ずっと半角カタカナモードが固定されてしまいます。
入力規則が設定されているセルを選択した場合はひらがな等になるのですが、そのセルを離れて、入力規則が設定されていない
別のセルに移動したらまた半角カタカナに戻ってしまいます。
半角カタカナ設定のテキストボックスは、抽出文字列を指定するためのものなので、入力後に「これで抽出」というコマンドボタンを
押すのですが、そのボタンクリックイベントでIMEModeの変更ができないものなのかと調べましたが無理なようです。
テキストボックスでのIMEModeの影響範囲がでかすぎます。
何か対策はないでしょうか? Excelファイルを開いた際に最初に表示する方法をご存知の方はいますか?
office365にアップロードするファイルのため、マクロは使えないのですが可能なのでしょうか。 857の書き込みですが、最初に表示する「シート」です。失礼しました。 >>858
最初に開かれるシートは何かって話にしか見えないんだけど
最後に保存された時にアクティブだった範囲の属するシートが開かれる
でいい? 知りたいのは毎回sheet1を開く方法なんじゃないかな >>860
毎回sheet1を表示して保存したらいいんじゃね? 返答ありがとうございます。
分かりにくい書き込みで申し訳ありません。
おっしゃる通り、ファイルを開く度にシート1が表示される方法です。
office365で不特定多数が編集するため、できれば自動で表示できる方法はないかと模索しております。 フォントサイズ72で、シート1以外を表示した状態で保存したら減給します、とか。 新しいOffice Scriptsって奴なら出来るんじゃね
使ったことないのでしらんけど >>863
なかなかユーモアがあって面白いですね(笑)
office365でもマクロが使えれば簡単なんですがね〜。 >>864
情報ありがとうございます。
聞いたことのないスクリプトですが調べてみます。 >>866
今年でたばかりのやつだし
アクティベートしないと使えないらしい >>867
まだ出たばかりなんですね。
うちの社内で使えるようになるのはまだ先かもしれません。
ともあれ有益な情報ありがとうございました。 >>868
そもそもマクロも使えない環境でOffice Scriptsとやらが使えるようになるのかなぁ… >>865
365だとマクロ使えないってのが意味不明なんだけど >>871
誤解を与えるような表現をしてしまってすみません。
うちの社内の環境だと、Excelファイルをパソコンからシェアポイントにアップロードして、それを各社員に配布されたipadで立ち上げて適宜編集しているというイメージです。
ipadでExcelファイルを立ち上げてもマクロが機能しないのです。
なかなか特殊な環境だと自負しております。 シート1が必ず表示されるようにしたいんだよね?
できる >>872
iPadじゃ試したことないけど、sharepoint同期させてデスクトップアプリで開いたら使えない? >>874
パソコン上でデスクトップアプリで開く分にはマクロも使えますね。
ただ基本的に各社員はipadしか配布されておらず、同期してExcel for ipadで開いてもやはりマクロが機能しないですね。 それだと他のことができなくなりますからダメですね。 ここの皆さんは、大したことないんですね
口だけ達者ですが、弊社にためになんの解決策も提示いただけないとは。
こちとら遊びじゃないんですが、ビジネスで必要なんですよ。 >>879
PowerShellとかVBSから開くようにすれば?
office365ってよくわからないけど、ブラウザで開くんでしょ? 対して困ってない問題なのに質問するなよ?
>>862
>返答ありがとうございます。
>分かりにくい書き込みで申し訳ありません。
>
>おっしゃる通り、ファイルを開く度にシート1が表示される方法です。
>office365で不特定多数が編集するため、できれば自動で表示できる方法はないかと模索しております。 ピボットテーブルで列に日付を設定しています。DAXでフィルターコンテキストを有効とした状態の初日を取得する方法を教えてください >ここの皆さんは、大したことないんですね
>口だけ達者ですが、弊社にためになんの解決策も提示いただけないとは。
>
>こちとら遊びじゃないんですが、ビジネスで必要なんですよ。
コピペになりそう VBAでリファクタリングする際に気を付けるポイントって何かありますかね? シートの1つにリストを作る
大阪
東京
神戸
別のシートで
マウスでセルを選ぶとリストから選べるように設定する。プルダウン?
( ´・ω・)ここまではできるんだけど、
昔リストの大阪を赤、東京を緑、神戸を青に文字を色付けしてたら、別のシートで選ぶときにも色が変わってたんだけどできなくなっちゃった。
どうしたらいい? win10
2013
vba不可
標準偏差を求めるためSTDEV.P関数を使用したいのですが、元のデータリストは異なる母集団のデータがB列に1列に並んでしまっており、そのままだとかけられません。ただし、各母集団がどれに属するかという符号がA列にふられているので、それを利用してなんとか各母集団の標準偏差を出せないのでしょうか・・・・
イメージとしてはsumifの要領です。 win10
2016
vba不可
https://i.imgur.com/88YUsbN.jpg
画像の様にセルに数字を入力すると指定した範囲の合計を算出する様にしたいのですがどの様な関数を使用すれば良いでしょうか。 =HLOOKUP(Q2,$G$2:$P$4,2,0)+HLOOKUP(R2,$G$2:$P$4,2,0)
中間ってどうやって足せばええんや、オツムが足りんわ >>812
デジタル省はアメリカからの要請らしい
安全保障面が前提
それを踏まえてのファイブアイズ加入 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
特定シートのみを削除されないようにしたいのですが、どうすればいいでしょうか?
シートは日毎に作成し、入力していき、一定日時が経てば古いシートから削除していきます。
ただ、末尾のシートは基データを入れており、各シートはそこからデータを参照しているため、
末尾のシートを誤って削除されないようにしたいのです。
ブックの保護ではシート追加時に毎回保護解除しなければならないのでなにか良い方法があればご教授お願い致します。 >>909
シート名に削除するな!って書くのが1番簡単 一応気休めでシートの保護とシートタブの色変えて削除厳禁とは書いてあります。 【1 OSの種類】 Windows10
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか】 はい
【4 VBAでの回答の可否】 可
○月の数字を変更するとL4以降のセルにyyyy/mm/dd形式の日付を自動で入力させるような方法はありますでしょうか?
https://free.uploader.xzy.pw/show/20200930153030_637145777a6a4e683963.BMP >>909
末尾のシートを非表示にするか、外部参照にする
でも、日ごとにシートを作成して都度削除するような運用は
ブックが壊れやすくなる気がするから勧めない >>911
削除禁止シートは一緒にせず別ブックにしとけ
入力はシート直接じゃなくフォームを使え
できればシートの削除や追加はVBAで自動的化した方が間違いが減らせるから、VBA可にできないか検討した方がいい そのシートをどのくらいの頻度でメンテするかによるな。 よるな、じゃねーよ
セル結合と別ブック参照はやめてくれ
自分のPCで一生場所動かさない自分だけのオナニー用だけにしてくれ バカが自信満々でトラブルの元まき散らすの勘弁してくれ セル内の文字列にある単語をダブルクリックした場合、
Excel2013→コロン(;)もまたいで選択される
Excel2016→コロン(;)の手前で選択が止まる
これは仕様?どこかに設定ある?おま環? ぶっちゃけExcel2000とかで十分なのにクラウドでデータを解析されるサービスを強要される エクセルでこんな感じ
https://prau-pc.jp/wp-content/uploads/2017/11/Pra1694.jpg
のマトリクス表を作った時に横項目と縦項目がわかりやすいように斜線を境に色の塗り分け
したいのですがなんかお勧めな方法ありますか? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
また教えてください。
商品リストシートを作成し商品名や商品コードを入力
入力シートにB列にE列が空欄なら""、E列に商品名があればVlookupで商品コードを参照
D列にC列が空欄なら""、C列に商品コードあればVlookupで商品名を参照するようにしました。
履歴シートの商品名列に入力E列(手入力データ)をコピーしたあと、
入力D列(関数で引用したデータ)を空白を無視して値をコピーするVBAを組んだら
長さ0文字のせいか手入力した商品名が上書きされて消えてしまいます。
リストから引用した商品名の方が固定文字になるので優先したいので、
貼り付け前に長さ0文字を空白にして無視して貼り付ける方法を教えてください。
よろしくお願いします。 分かりにくくて申し訳ない
文字の入ってるセルに上から関数で「""」にしてるセルを空白を無視してコピーすると元々の文字が消えてしまうんです つまり、文字の入ってるセルに、上書きで、「関数で「""」にしてるセル」をコピーすると元々の文字が消えてしまうってこと? つまり、文字の入ってるセルに、上書きで、「〜〜」と書いてあるセルをコピーすると元々の文字が消えてしまって、「〜〜」になってしまうってこと? 空白判定はISBLANKかなんかでやってんのかな
その場合何も入っていないかどうかを判定するわけで、数式が入っていたらBLANKとして扱われない
=””でやればいいんじゃないか ExcelVBAにて
If aa = bb And cc <> dd Then
ans = x + y
Elseif aa = bb And cc = dd Then
ans = x
Endif
上記の内容で aa = bb = cc = dd だったのに
x + y が返されました。そこでIF文を入れ替えると正常に
動作したのですが、原因がわかる方教えていただけると幸いです。 If aa = bb And cc <> dd Or ff = "" Then
ans = x + y
Elseif aa = bb And cc = dd Then
ans = x
Endif
間違えていました。こちらです。 ブレークポイントつけてウォッチウィンドウで変数の中身見ながらデバッグしなさいな cc <> dd Or ff = ""
が真だからじゃないの a and b or c って (a and b) or c と一緒でそ
ffが空なら ans = x + y になるんじゃね ペンがマクロで記録できないんですけど、
いや出来なくてもいいんですけどマクロで書けませんかね。
2019EXCEL2019バージョンです。
セルの上にペンでセルを書いたら、さぞかしアホだろうなと思うんですけど。
あと、戻る、進むのほかに、戻らないがあるといいと思いました。
←┐ ┌→ ×←┐
┘ └ ┘ ああ、俺が厨二だったら間違いなくセルの色はインクで染めたな。
しかもアホかって言われるまでしつこくやる。 https://i.imgur.com/ub6yJc5.jpg
画像右側のように、B列に値が入力されたものだけ項目と一緒に抽出したいと考えています。
マクロを使わずに実装する方法を教えてください。
よろしくお願いします。 >>949
どのバージョン使ってるかにもよるけど、filter関数 filter関数はセルの結合をしていると使えない欠陥がある スピルもそうだけど配列数式使うとソートが使えなくなるのそろそろ何とかならない? 例えば、
社員リストを元に社員カードを作りたい場合、社員カードのセルに社員リストを参照するのが良いと思うのですが、
どういった方法が一番使い勝手が良いのでしょうか?
社員リスト(人物リスト)
https://dotup.org/uploda/dotup.org2272092.png_yjlmrmi49e0Kv5AvrALh/dotup.org2272092.png
自己紹介カード(赤文字が社員リストから参照している部分)
https://dotup.org/uploda/dotup.org2272094.png_42knHvlYW33nzKwjqql8/dotup.org2272094.png
現状、リストへの参照は、="なまえ-"&sheet!A2&"しゅみ-"&sheet!B2
といった風に無難?な参照方法でカードのセルに書いていっていますが、こういうのはxlookupを使った方がやりやすいのでしょうか?
また、自己紹介カードの参照セルの数字部分(sheet!A2のA2や、sheet!B2のB2)を
連番で複製することによって、太郎や陽介など他の社員のカードもコピーして簡単に作れると思うのですが、
複数行単位での関数部分の連番をするのに、適した方法や関数があれば教えて頂けないでしょうか
宜しくお願いいたします。 すみません、
>現状、リストへの参照は、="なまえ-"&sheet!A2&"しゅみ-"&sheet!B2
ここのセル指定がズレていますね、
A2ではなくsheet!B3、B2ではなくsheet!D3
でした 失礼しました 一度発行してしまえば今後何枚も印刷するようなものじゃなさそう
用紙一枚に入るだけのレイアウトで番号入力したらxlookupで埋める形よいかと セルの内容をクリップボードにコピーするマクロってどうやって作るのですか 皆さんExcelの検定とか資格って持ってるのですか? >>960
Sub Sample1() 'セルA1の内容をクリップボードに入れる
With CreateObject("Forms.TextBox.1")
.Text = Cells(1, 1)
.SelStart = 0
.SelLength = .TextLength
.Copy
End With
End Sub >>955
indirectを使えば出来るけど、
https://i.imgur.com/sGeXIc8.png
>>957の言うように番号入れるだけにしたほうが確実に楽
>>962
MOSの難しい方取ったわ。一週間問題集解きまくれば簡単に受かる
詳しくは資格板へGo >>962
エキスパートまで持ってるけど何の意味もないな
VBA検定の方が欲しい 中小はわかんないけど、大手は脱マクロ傾向にあるから、Powerplatformに移行するのおすすめ
Appsでアプリ作ってから会社貸与スマホでの棚卸しや商品管理が楽になったよ 中小向けのソリューションも売り込みが盛んになってきてるし、コロナで業績の落ちたとこはどんどん飛びつくと思うよ x = Cells(1,1) 'A1
と
Function(A1)
ってどっちが処理はやいんですか? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
a1,b1,c1,d1,e1,f1
にそれぞれ数値が入ってます。
これらの数値がすべて異なる場合に1を重複する場合には0を表示したいのです。
良い方法はありませんか?a1,b1,c1,d1,e1,f1のセルは実際にはもっと増えるため
一つ一つをCountIFなどで判定するのはつらいのです>< 同じ値のセル数をcountすればいいだけじゃないの そんでセルの数と合ってれば1にすればいいだけじゃないの >>978
作業列を使ってcountIFを使う方法はわかるのですが、
作業列を使わないで一つのセルで完結に解決したいのです。。。 >>976
そもそもなんで横で比較するんだ?
テーブルの考え方から言って、フィルターかけるのは縦なんだから作りからいけてないのでは 無理やり1セルでやってみた
FindじゃなくてMatchだね
https://i.imgur.com/wv6Irqb.jpg >>982
縦でも構わないです。
a1,a2,a3,a4・・・でも構いません。
作業列を使わずにスマートに列の中に重複する数値があるかを
一つのセルで完結したいです。 >>980
countaでセルの数を数えてcountで基準となるセルと同じセルの数を数えて両方が同じ数なら1にすればいいんでしょ
作業列いらないじゃん >>983
ありがとう。。。
でも、数値の入ったセルは今後どんどん増える予定なのです。。。 >>985
countaとcountでどのように解決できますか?
どのような式になるか教えていただけると助かります。 関数はわかりますが。。。
countで解決できるとは思えないのですが。。。 =(SUM( (A1:F1=TRANSPOSE(A1:F1)) *1) = COUNT(A1:F1))*1
で多分いいと思う
配列数式なので、Ctrl+Shift+Enterで count…数値のカウント
counta…空白以外のカウント
これで解決できるのですか?
全く想像できません。。。
わかる方アドバイスお願いします>< >>990
ありがとうございます。ぜひ使わせていただきます。
動作を確認いたしましたm(_ _)m 縦並びでもいいんなら
=IF(SUMPRODUCT(COUNTIF(A:A,A1:A9))=COUNT(A:A),1,0)
範囲のA1:A9の部分はデータの個数に応じて変更して 365覚えると「今まで俺が学んできたことは一体何だったんだ」ってなるよな >>995
ありがとう。新しい関数を使えば簡単なんですね このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 17時間 1分 54秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。