CONTRIBUTOR.PW
前往频道在 Telegram
Google Таблицы. Google Apps Script. Google Data Studio. Google Cloud. Вопросы работы с продуктами Гугл, Google и всего такого, что может быть и не Google вовсе. Сайт contributor.pw Чат t.me/contributor_pw_chat
显示更多俄罗斯827 357未指定类别
270
订阅者
无数据24 小时
+17 天
+430 天
帖子存档
Картинка порадовала. Действительно, стоит вовремя переосмыслять использование тех или иных инструментов. Особенно Google Таблиц. https://twitter.com/benlcollins/status/1375819466634825733
В продолжение сообщений о багах, хочу предупредить о проблеме автозаполнения. Суть в том, что при протягивании последовательности можно получить неточные значения чисел. Это получается не всегда, например, если начать с
0,01, то проблемы не возникает.Нашел на форумах такую ошибку: если ввести значений
"14%", то оно преобразуется в десятичную дробь без дробной части. Пока еще не понятно, насколько сильно это может повлиять на расчеты, но таких чисел как 14,% достаточно. Кстати, Sheets API возвращает значение без знака.Новый релиз AlaSQL 1.7.2 адаптирован для Apps Script https://github.com/contributorpw/alasqlgs. Добавлены методы генерации объектов для корректной выборки JOIN. Добавлены примеры.
Немного настроил внешний вид сниппетов. Разделил основной код и код для запуска. На примере последнего сниппета https://google-apps-script-snippets.contributor.pw/snippets/common_js/get_id_from_url/ который просто получает id файла из его url
10 марта разработчики Excel проведут очередную публичную беседу, в ходе которой им можно будет задать любые вопросы https://techcommunity.microsoft.com/t5/excel-blog/excel-reddit-ama-on-march-10-at-10-am-pt/ba-p/2108687, например, что же реально курче
VLOOKUP или INDEX/MATCH? Может быть вопросы, связанные с возможностями бизнес-аналитики, что-то про сводные таблицы, Power Pivot, модель данных и интеграцию PowerBI? Должно быть интересно 👍Это загадка! Не надо писать ответ!
Но если вы догадались или решили - оставьте сообщение 😉 https://groups.google.com/g/contributorpw/c/LmD72w22g_w/m/p2ABqnJEAAAJ
Причина: на этой неделе получил сразу несколько вопросов по этой теме. А если есть ошибка, значит надо знать, как ее решать.
Что делать, если вы не можете восстановить доступ к украденному аккаунту Google? https://your-account-google.blogspot.com/2021/03/google.html
Небольшой проект по поиску файлов на Диске Гугл https://github.com/contributorpw-community/drive-files-control-gs
Сейчас там почти ничего нет. Нет даже простой версии для запуска 🤪
Что умеет сейчас
✅ Искать до 1000 ваших файлов, которы вы поделились с определенным контактом
✅ Выводить результат в Таблицу
В планах
☑️ Добавить возможность лишения пользователя прав на файлы
☑️ Обработка более 1000 файлов
Служба добрых дел ESET Russia, похожа на каую-то отмывайку времени. Создали тикет. Через 4 дня и 5 минут присылают сообщение:
"Мы не получили вашего ответа по обращению №XXX.
...
Если мы не получим от Вас ответ в течение 4-х дней, Ваше обращение будет закрыто."
Вот это совпадение, ровно 5 минут назад мой тикет пропал 😉! Очевидно, что ушлый хацкер водит за нос. Только кого? 🤷♂️
Код требует серьезной доработки, но как пример для изучения подойдет. Был такой код https://ru.stackoverflow.com/q/1242179/178725, а стал генератор персон, логинов и паролей. Если вы изучаете Apps Script, то будет полезно понять:
1) как и зачем разбит листинг на несколько файлов?
2) почему генератор не записывает данные в Таблицу?
3) почему была добавлена возможность нескольких итераций генератора внутри его функции?
https://docs.google.com/spreadsheets/d/1BBObMiYI1TUU2CvQZPXhnX7hXfx8Xyqv1n8dDt9mogw/edit?usp=sharing
Пример в Таблице https://docs.google.com/spreadsheets/d/15hSPX62FIzqYa15bsiO8408zTBfc19ydcgFNzmj83Aw/edit?usp=sharing
function addNote() {
const book = SpreadsheetApp.getActive();
const target = book.getSheetByName('Лист2');
const source = book.getSheetByName('Лист1');
const dataMap = source
.getDataRange()
.getValues()
.reduce(
(p, row) => (row[0] !== '' ? (p[row[0]] = `${row[1]} ${row[2]}`) : '', p),
{}
);
const notesRange = target.clearNotes().getDataRange();
const notesBase = notesRange.getValues();
const notes = notesBase.map((row) =>
row.map((cell) => dataMap[cell] || undefined)
);
notesRange.setNotes(notes);
}Создать заметки на
Листе2 на основе списка Листа1 таким образом, чтобы заметки попадали в ячейки со значениями, равными индексу в списке Листа1.Что-то фантазия мне стала отказывать. Опять попалась формула, которая никак не хочет складываться. Ну, хоть результат у нее удовлетворительный: фиксированный плавающий диапазон https://stackoverflow.com/a/66148158/1393023
Казалось бы, простая формула - найти положение числа на одном отрезке и отложить пропорционально это положение на другом. Но что-то кроме уродливых
VLOOKUP в голову ничего не пришло. Есть идеи? https://docs.google.com/spreadsheets/d/13khHQy180y-RenOrzrEI3oRf7RJ_dCg_l_HydK6kpnE/edit#gid=766475017Как думаете, можно сделать попроще https://docs.google.com/spreadsheets/d/1glVUsA2gQqWXPi4PLmKGlaIZA1GxtarND5BQ-94R1nQ/edit?usp=sharing ?
Обновил пост по восстановлению файлов на Диске https://gdriveru.blogspot.com/2017/05/restorefiles.html Добавил новые сслыки на восстановление.
Возвращает ссылку на истинно пустое метсто в Таблице.
ISBLANK проверяет на пустоту ячейку и возвращает истину только в случе истинной пустоты или ссылки на диапазон с таковой. Какие еще альтернативы можно использовать?Не перемудрил ли я с
TEXT(ROUND(MOD(D8;1);2)*100;"00") вот тут https://qna.habr.com/answer?answer_id=1866473#answers_list_answer ? Кажется, что можно как-то проще забрать первые две цифры из остатка десятичной дроби.